CN1058344C - 数据处理***中进行模糊逻辑运算的方法和数据处理*** - Google Patents
数据处理***中进行模糊逻辑运算的方法和数据处理*** Download PDFInfo
- Publication number
- CN1058344C CN1058344C CN93106696A CN93106696A CN1058344C CN 1058344 C CN1058344 C CN 1058344C CN 93106696 A CN93106696 A CN 93106696A CN 93106696 A CN93106696 A CN 93106696A CN 1058344 C CN1058344 C CN 1058344C
- Authority
- CN
- China
- Prior art keywords
- value
- signal
- mentioned
- input
- increment
- 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 - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
-
- 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)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computational Mathematics (AREA)
- Mathematical Optimization (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)
- Biomedical Technology (AREA)
- Mathematical Analysis (AREA)
- Molecular Biology (AREA)
- Pure & Applied Mathematics (AREA)
- Computing Systems (AREA)
- Automation & Control Theory (AREA)
- Mathematical Physics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Computer Hardware Design (AREA)
- Complex Calculations (AREA)
- Logic Circuits (AREA)
- Feedback Control In General (AREA)
Abstract
本发明为在模糊逻辑运算中决定隶属集合中输入的隶属度的电路和方法。隶属度由单一的“MEM”软件指令来计算。MEM指令决定了***输入的隶属度是0还是饱和值或是介乎二者之间的某个值。操作数分配电路和ALU使电路能很快地决定隶属度。分配电路根据待相乘的值中有效位的数目决定相乘运算的乘数。如果乘数小于被乘数,那么可以以较短的时间完成相乘操作。另外,ALU运行在分离操作模式下,能同时完成两个8位的减操作和乘操作。
Description
本发明一般地涉及一种数据处理***,特别地涉及数据处理***中进行模糊逻辑运算的方法。
数据处理器已发展为二进制机器,其输入和输出被译作1或0,不存在其它的可能。在大多数场合是这样的,但常常有一种回答不是简单的“是”或“不”,而是介于这“是”与“不”两者之间的某种东西。为此,人们发展了一个被叫做“模糊逻辑”的概念,以使数据处理器能提供“是”与“不”之间的回答。
模糊逻辑是一个逻辑***,它有带模糊边界的隶属功能,隶属功能将主观的表述(例如:“温度”)翻译成典型的数据处理器能够识别的值。标志(例如:“热的”)用来识别输入值的范围,其边界不是标志在其一边为真而在其另一边则是假的点。相反,一个实现模糊逻辑的***中,功能的边界渐渐地改变,且有可能一个相邻近的隶属集合的边界会重叠起来。因此,一个隶属度被典型地指定给一个输入值。例如,假定在整个温度范围内有两个隶属功能,输入温度可能落在功能标志“冷”和“热”二者的重叠区域内。于是,进一步的处理就需要决定每个隶属功能中的隶属度(即输入温度是否在每个隶属集合(冷和热)中都适合)。
被叫做“模糊化”的步骤用来使输入与隶属功能与实施模糊逻辑的***中的隶属功能联系起来。模糊化处理是把具体的数值加到如“温度是热的”这样的主观表述上。这些数值企图提供一个人类认知的良好近似,这种认知一般是不仅限于绝对真理的环境的。在模糊化步骤之后,执行“规则评价”步骤。在规则评价步骤的执行期间,一种被叫做“最小-最大”推理的技术用来为用户所确定的语言规则计算数字结果。规则评价步骤得出的结果叫做“模糊输出”且对变化的度来说可能是真的。因此,可能产生竞争的结果。模糊逻辑处理的最后步骤被叫做“消模糊化”。正如名称的意思,消模糊化处理是将所有的模糊输出联合成一个合成结果,此结果可用于标准数据处理***。关于模糊逻辑的更多的信息,可参考由詹姆斯·N·山伯格乔士(JamesM.Sibigtroth)所写的论文“在硬件中执行模糊专家规则”。该论文刊在1992年4月号AI EXPERT的第25至31页上。
典型地,模糊化步骤一直是用软件程序来实现的,此程序由外部设备或由数据处理器执行。这样的软件程序用数学方程式计算隶属度,而这却需要很多很多的处理时间。所以,虽然软件程序提供了一个准确的结果,但是处理时间通常限制了***实现的功能。另一个公共的软件解决办法是实行一个“查找表”程序,在此程序中,贮存在存储器中的数据表被存取,其值与具体输入值相一致。尽管查找表程序比数学计算来得快些,但它需要大量的专用存储区,实现起来很昂贵。实现模糊化步骤的硬件解决办法提供了更快的结果。然而,硬件解决办法通常需要大量的专用电路,这些电路是不可改变的。尽管硬件解决办法对模糊化步骤是典型地比软件实现来得快,但硬件办法需要大量专用电路区且在数据处理***中实现常常是太昂贵了。
因此,为快速实行模糊化步骤,需要有一种没有昂贵的硬件需求的电路和方法。将速度与硬件解决方法典型地结合起来是需要的,而不是通常地把存储器与软件解决办法结合起来。
本发明能满足上述的需要。因此,本发明提供了一种形式的、用于在数据处理***中实行模糊逻辑运算的***和方法,该模糊逻辑运算在一组预定的隶属集合中决定输入点的隶属,该预定的隶属集合是由多个边界值来确定的。
为实现上述目的,本发明提供了一种用于在数据处理***中进行模糊逻辑运算的方法,该模糊逻辑运算决定一个输入值在由多个边界值限定的一个预定隶属集合中的隶属度,该方法的特征在于以下步骤:
接收一个用于在数据***中开始执行模糊逻辑运算的隶属评价指令;
对上述隶属评价指令进行译码,以提供多个控制信号;
从输入值减去上述的多个边界值中的一个第一个边界值以产生第一增量值,同时从上述多个边界值中的一个第二边界值减去输入值以产生第二增量值,
根据上述的第一、第二增量值产生多个标志信号;
根据上述的多个标志信号中的至少一个选择一个乘法运算的操作数;
通过以下的方式执行上述的乘法运算;将第一个增量值与多个边界值中的第三个值相乘以提供第一个结果,同时将第二个增量值与多边界值中的第四个值相乘以提供第二个结果,上述的多个边界值中的第三个值除于上述的多个边界值中的第四个值的结果中包含一个斜率值;以及
提供隶属度信号,当第一增量值或第二增量小于零时,该隶属度信号表示输入值不包括在预定的隶属集合中;当第一增量值和第二增量值均不小于零时,该隶属度信号为上述第一结果、第二结果和上述的多个边界值中的第五个值中的最小值。
这些特征和其它的特征以及优点将从下文结合图示的详尽描述中得以更明白的理解。
在附图中:
图1表示了用画图形的方法描述模糊逻辑的一些概念和基本术语;
图2更详细表示了图1的隶属集合;
图3显示了按照本发明的、用方框图形式表示的数据处理***;
图4是显示了用方框图形式表示的图3的执行单元;
图5显示了用逻辑电路形式表示的图4的标志产生逻辑电路;
图6显示了用方框图形式表示的图4的操作数分配逻辑电路;
图7显示了用方框图形式表示的图4的算术逻辑单元;
图8显示了用流程图形式表示了本发明中执行MEM指令期间所执行功能的流程。
本发明提供了这样一种电路和方法,它们能把输入快速地“模糊”到数据处理***中而用最少量的专用电路。本发明提供了一种指令,它允许数据处理***的用户快速实行模糊化步骤而毋须既难又长的软件程序。快速而有效地执行该指令将单一输入标记的模糊化步骤进行编码,但在数据处理***中没有过量的附加电路。
在描述本发明的实现中,术语“认定”和“取消”以及由此而引伸的各种语法形式被用来避免论及“有效高”和“有效低”逻辑信号混合时的混乱。“认定”是指把逻辑信号或寄存器位变成它的有效状态或逻辑真状态。“取消”是指把逻辑信号或寄存器位变成它的无效状态或逻辑假状态。另外,可在一个值的前面加符号“$”表示十六进制。
图1提供了表示模糊逻辑的几个基本术语和概念的图。在图1所描述的模糊逻辑***中,“***输入”是以华氏温度表示的温度。五个“隶属功能”被提供,以与温度范围的标记有关。例如,从0 °F-30°F,温度标记为“冷”。同样,从20 °F-50°F,温度标记为“凉”。注意,每个隶属集合的边界与相邻隶属集合的边界有所重叠。因此,温度可能处在多于一个的组中。例如,假定***输入指示的温度为68°F。参照图1,注意到:68°F是在“温暖”隶属集合和“十分温暖”隶属集合的边界之内,故在这些隶属集合的每一个中都可得到非零隶属度。该***输入对“温暖”隶属集合有$33隶属度,并对“十分温暖”隶属集合有$CC隶属度。如果***输入指示了温度75°F,则温度就只有“十分温暖”隶属集合的$FF隶属度。同样,温度75 °F应在“热”隶属集合有$00隶属度。在图1的模糊逻辑实现中,隶属度可以是从十六进制值$00至$FF的范围,相应于分数0.00至0.996的范围。
图2表示了一个单一的隶属集合,可以用四个值来表示:点1,点2,斜率1和斜率2。第一个值叫做“增量1”,被计算作***输入(点“X”)和点1之间的差。同样,第二个值叫做“增量2”,被计算作点2和***输入之间的差。从增量1和增量2的值的计算,根据本发明的方法就可以提供隶属度。如果增量1或增量2的值小于零,那么相应隶属集合的隶属度为0.00。否则,隶属度等于增量1和斜率1的乘积、增量2和斜率2的乘积二者之最小值或一个饱和值。在当前正在测试的隶属集合中,最小值是当前输入值的隶属度。在这里所述的例子中,饱和值是十六进制值$FF。不过,其它的实施方式可以允许模糊逻辑***的用户选择一个与具体***的性能相一致的饱和值。
被叫做记忆标记“MEM”的本发明的指令,使数据处理***在多个隶属集合中的一个集合内完成一系列决定***输入值的隶属度的步骤。每个隶属集合的特征均在于多个边界值(点1,点2,斜率1和斜率2),这些边界值被从存储器中再现。如果多个边界值中的每一个都被适当地贮存在存储器中,且如果***输入值在执行MEM指令以前被适当地贮存在寄存器单元中,则可以决定多个隶属集合中的一个集合内***输入的隶属度。接着,在多个隶属集合的第一集合中的***输入的隶属度被贮存在存储器的预定单元里。MEM指令的实现使数据处理***的用户比传统的软件能更快地完成隶属评价功能,且其所用的专用电路区比典型的硬件所要求的要少。例如,一般操作数据处理***所需要的算术逻辑单元被修正来在分离操作方式中进行操作。通常,算术逻辑单元能同时完成预定点上单一的十六位操作。但是,这里所揭示的算术逻辑单元可以有选择地完成一个单一的十六位操作或两个同时进行的八位操作。因此,计算隶属集合中隶属度所需的算术操作同时进行计算,所需的时间比传统所需的要少。需要的附加电路很少。为了在分离操作模式下操作算术逻辑单元,一个单一的使能信号被提供给现存的缓冲器电路。另外,实现MEM指令只需要少量的附加电路。
指令的一种实现和上述的操作方法表示在图3中。图3示出了可以实现模糊化指令的数据处理***10。数据处理***10通常包括中央处理单元(CPU)12、振荡器24、电源电路26、时基电路28、外部总线接口30和内部存储器32。CPU12通常有一个执行单元14、一个总线控制逻辑电路16、一个指令译码逻辑电路18、一个控制单元20和一个定序器22。
在操作中,“OSC1”信号被经过外部源(如晶体)提供给振荡器24。该晶体被接在“OSC1”信号和“OSC2”信号之间以使晶体产生振荡。OSC1提供一个“定时”信号给数据处理***10的其余部分。晶体振荡器的操作在数据处理技术中是公知的,且对本领域技术人员是显而易见的。
同样,电源电路26从外部电源接受两个信号“Vdd”和“Vss”。Vdd信号提供一个+5V,Vss信号提供一个参考电压或地电压。Vdd和Vss信号被提供给数据处理***10的每个其余部件。这些信号的线路在数据处理技术中是公知的,并对本领域中的技术人员是显而易见的。
时基电路28接受定时信号并接着将合适的时基信号经时基控制总线38提供给CPU12、外部总线接口30和内部存储器32中的每一个。
多个地址值被从外部总线接口30经外部地址总线3提供。同样地,多个数据值经外部数据总线33与外部总线接口20进行通信。外部总线接口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存储器(图上未画出),它把多个控制信息经微ROM控制总线65提供给执行单元14、总线控制逻辑16以及指令译码逻辑18。
执行单元14更详细地表示在图4中。执行单元14通常包括一个数据缓冲器42、一个结果选择逻辑电路46、一个标志产生逻辑电路48、一个操作数分配逻辑电路50、一个A输入控制逻辑电路52、一个A输入多路器54、一个算术逻辑单元(ALU)56、一个B输入多路器58、一个增量寄存器60和一个***输入寄存器64。在执行单元14中还可包括其它的寄存器,虽然它们未在图4中画出来,但它们对该技术领域中技术人员是显而见的。例如,执行单元14可能包括一个变址寄存器或一个累加器。另外,在典型的数据处理***中,***输入寄存器可以采用累加器来实现。
外部信息总线40把地址和数据信息提供给数据缓冲器42。外部信息总线40分别从内部地址总线36和内部数据总线34接受地址和数据信息。数据缓冲器42把经外部信息总线40所传送的值经信息总线A66和信息总线B68提供给执行单元14的其余部分。虽然这里没详细画出来,信息总线A66和信息总线B68的总线宽是十六位的,且分成高端(位15至位8)和低端(位7至位0)。
信息总线A66的低端双向耦合到***输入寄存器64的第一输入端。同样,信息总线B68的高端双向耦合到***输入寄存器64的第二输入端。被叫做“增量1”的第一个增量值经信息总线B68的高端被提供给增量寄存器60的第一输入端。第二个增量值“增量2”经信息总线B68的低端被提供给增量寄存器60的第二输入端。增量寄存器60还连接到信息总线A66和信息总线B68以提供信息给执行单元14的其它部分。任何其它寄存器(如累加器和变址寄存器)可同样地耦合到信息总线A66和信息总线B68。
信息总线A66被接到A输入多路器54的第一输入端。一个标记“控制”的n位宽的信号被提供给A输入多路器54的第二输入端,其中n为整数。A输入多路器54把标记为“A输入低端”的第一个十位输出提供给ALU56的第一输入端,并把标记为“A输入高端”的第二个十位输出提供给ALU56的第二个输入端。
信息总线B68连到B输入多路器58的一个输入端。使B输入多路器58正确地起作用所需的控制信息被经控制单元20中由微ROM(未画出)所产生的多数信号提供给控制输入,并经微ROM控制总线65传送。B输入多路器58把标记为“B输入低端”的第一个十位输出提供给ALU56的第三个输入端。另外,B输入多路器58把标记为“B输入高端”的第二个十位输出提供给ALU56的第四个输入端。
标记为“分离模式控制”的信号被提供给ALU56的第五个输入端。分离模式控制信号由控制单元20中的微ROM存储器根据对MEM指令的执行而产生。ALU56处理每一个输入,以提供多个经结果总线120传送的结果。结果总线120提供多个信息值给结果选择逻辑电路46和标志产生逻辑电路48。另外,结果总线120耦合到信息总线B68。
除了与结果总线120相连,标志产生逻辑电路48还耦合到增量寄存器60和数据缓冲器42。标志产生逻辑电路48从增量寄存器60接受“增量”信号,并从数据缓冲器42接受“缓冲数据”信号。标志产生逻辑电路48也耦合到操作数分配逻辑电路50和结果选择逻辑电路46,以便经标志总线70提供多个标志值。另外,标志产生逻辑电路48耦合到ALU56以便分别向ALU56的第六、第七个输入端提供J高和J低信号。
操作数分配逻辑电路50也连接到信息总线A66、信息总线B68和标志总线70。操作数分配逻辑电路50连接到A输入控制逻辑电路52,以提供标记为“乘数1”的第一个输入信号和标记为“乘数2”的第二个输入信号。另外,操作数分配逻辑电路50耦合到增量寄存器60以接收增量信号。A输入控制逻辑电路52连到A输入多路器54,以提供控制信号。
结果选择逻辑46经标志总线70和结果总线120接收信息。该信息被处理以提供标记为“选择”的第一个输出和标记为“强制$FF”的第二个输出。
标志产生逻辑电路48被更详细地表示在图5中。标志产生逻辑电路48通常包括一个或非门110、一个或非门112、一个或门114、一个或非门116、一个或非门118、一个锁存器130、一个与门132、一个与门134、一个锁存器136、一个与门138、一个或非门140、一个或非门142、一个或门144、一个或非门146、一个或非门148和一个或门150。锁存器130和136每个都是用D触发器来实现的,它有一个数据输入端(D)、一个定时输入端(C)、一个复位输入端(R)和一个数据输出端(Q)。数据处理技术中的D触发器是公知的,为此,将不再赘述。
数据缓冲器42(图4)提供第一个信息值的第15至8位给或非门112。在这里所述的例子中,第一个信息值通过第一个缓冲数据信号提供,以下此信号叫做缓冲数据1信号。缓冲数据1信号将提供一个点1值或者提供一个斜率1值。或非门112的输出标记为“Z2”且提供给锁存器136的数据输入端(D)和与门134的第一个输入端。时基控制信号由时基控制总线38提供给锁存器136的定时输入端(C)。锁存器136的数据输出(Q)连接到与门134的第二个输入端以提供一个标记为“ZP2”的信号。与门134的输出标记为JP高且被提供给或门144的第一个输入端。
另外,缓冲数据1信号的第15至12位(B15-B12)被提供给或非门140。或非门140的输出被标记为“S2”且提供给或非门142的第一个输入端。
数据缓冲器42还把第二个信息值的第7至0位提供给或非门118和与门138。第二个信息值经第二个缓冲数据信号(叫做缓冲数据2信号)提供。缓冲数据2信号把点2值的第7至0位提供给与门138,并把斜率2的第7至0位提供给或非门118。与门138把输出送到锁存器130的数据输入端(D)。或非门118提供一个标记为“Z4”的输出。Z4信号传送到与门132的第一个输入端。时基控制信号由时基控制总线38提供给锁存器130的定时输入端(C)。锁存器130的数据输出端(Q)连接到与门132的第二个输入端,以提供一个标记为“ZP4”的信号。与门132的输出标记为JP低且提供给或门150的第一个输入端。
另外,缓冲数据2信号的第7至4位(B7-B4)被提供给或非门146。或非门146的输出被标记为“S4”且提供给或非门148的第一个输入端。
增量寄存器60把第三个信息值的位15至位12提供给或非门110。在此实施例中,第三个信息值由叫做增量1信号的第一个增量信号来提供。或非门110的输出标记为“Z1”,并也经由标志总线70传送。Z1信号也提供给或非门142的第二个输入端。或非门116的输出标记为“Z3”且经标志总线70传送。第四个信息值经由叫做增量2信号的第二个增量信号提供。Z3信号还提供给或非门148的第二个输入端。
结果总线120分别向或门114的第一个输入和第二个输入端提供N低和N高信号。或门114的输出标记为Nmem。Nmem信号提供给锁存器130和锁存器136的复位输入端(R)。另外,Nmem信号提供给或非门142和或非门148各自的第三个输入端。
或非门142的输出被标记为“Js高”且提供给或门144的第二个输入端。或门144的输出被标记为“J高”。另外,或非门148的输出被标记为“Js低”且提供给或门150的第二个输入端。或门150的输出被标记为“J低”。J低和J高信号经标志总线70进行通信。
操作数分配逻辑电路50更详细地显示在图6中。操作数分配逻辑电路50通常包括一个第一多路器72、一个第二多路器74、一个第三多路器76和一个第四多路器78。
增量寄存器60和数据缓冲器42分别将增量1值和斜率1值的低4位提供给多路器72的第一和第二输入端。另外,增量寄存器60和数据缓冲器42分别将增量1值和斜率1值的全部8位提供给多路器74的第一和第二输入端。同样,增量寄存器60和数据缓冲器42分别将增量2值和斜率2值的低4位提供给多路器76的第一和第二输入端。增量寄存器60和数据缓冲器42分别将增量2值和斜率2值的全部8位提供给多路器78的第一和第二输入端。
“Z1”信号经标志总线70提供多路器72的第三输入端。另外,Z1信号经标志总线70提供给多路器74的第三输入端。同样,标记为“Z3”的信号被分别提供给多路器76和多路器78的第三输入端。Z3信号经标志总线70传送。
多路器72输出四位乘数1信号,而多路器76提供四位乘数2信号。多路器74输出一个标记为“被乘数1”的八位信号,该信号经信息总线A66的高端传送。多路器78输出一个标记为“被乘数2”的八位信号,该信号经信息总线A66的低端传送。
ALU56更详细地表示在图7中。ALU56通常包括多个相加电路(80,82,84,86,88,92,96,98和100)、一个缓冲器90、一个高进位超前逻辑电路102、一个低进位超前逻辑电路104、一个高状态标志电路106和一个低状态标志电路108。
A输入低端信号提供第一组多个位,分别标记为“a0”,“a1”,“a2”,“a8”和“a9”。位a0被输入到相加器100的第一输入端。同样,位a1至a9被分别送到相加器98、相加器96、相加器94和相加器92各自的第一输入端。B输入低端信号提供第二组多个位,分别标记为“b0”,“b1”,“b2”,“b8”和“b9”。位b0被提供给相加器100的第二输入端。同样,位b1至b9被分别提供给相加器98、相加器96、相加器94和相加器92各自的第二输入端。虽然在图7中没有详细示出,位a3至a7和位b3至b7的每一位均被提供给第一组多个相加器中相应的那个相加器(未画出)。第一组多个相加器中的每一个(未画出)所起的作用与相加器92至100是一样的,因此,也就有一样的结构。
标记为“C0”的信号被提供给低进位超前逻辑104的第一输入端和相加器100的第三输入端。相加器100输出一个标记为“S0”的“和”信号。另外,相加器100把标记为“P0”的传播信号和标记为“G0”的发生信号被提供给低进位超前逻辑电路104。
标记为“C1”的信号被提供给相加器98的第三输入端。相加器98提供一个标记为“S1”的“和”信号。相加器98也产生一个传播信号“P1”和一个发生信号“G1”。同样,标记为“C2”的信号被提供给相加器96的第三输入端。相加器96提供一个标记为“S2”的和输出、一个标记为“P2”的传播信号以及标记为“G2”的发生信号。同样,标记为“C8”的信号被提供给相加器94的第三输入端。相加器94输出一个标记为“S8”的和信号、一个标记为“P8”的传播信号以及一个标记为“G8”的发生信号。标记为“C9”的进位信号提供了相加器92的第三输入。相加器92输出一个标记为“S9”的和信号、一个标记为“P9”的传播信号以及一个标记为“G9”的发生信号。由相加器92至100所输出的每个传播信号和发生信号均被提供给低进位超前逻辑电路104。
低进位超前逻辑电路104将标记为“C10”的进位信号提供给缓冲器90。分离方式的控制信号也被提供给缓冲器90。缓冲器90提供一个标记为“Cin”的信号。
A输入高端信号提供了第一组多个位,分别标记为“a10”,“a11”,“a12”,“a18”和“a19”。位a10被输入至相加器88的第一输入端。同样,位a11至a19中的每一个分别被提供给相加器86、相加器84、相加器82和相加器80的第一输入端。B输入高端信号提供了第二组多个位,分别标记为“b10”,“b11”,“b12”,“b18”和“b19”。位b10被提供给相加器88的第二输入端。同样,位b11至位b19各自分别被提供给相加器86、相加器84、相加器82和相加器80的第二输入端。虽然在图7上未详细画出,位a13至a17和b13至b17分别被提供给第二组多个相加器中的相应一个(未画出)。第二组多个相加器的第一个(未画出)所起的作用与相加器80至88是一样的,因此,它们有相同的结构。
Cin信号被提供给相加器88的第三输入端。相加器88输出一个标记为“S10”的和信号。另外,相加器88提供标记为“P10”的传播信号和标记为“G10”的发生信号给高进位超前逻辑电路102。
标记为“C11”的信号被提供给相加器86的第三输入端。相加器86提供一个标记为“S11”的和信号。相加器86还产生一个传播信号“P11”和一个发生信号“G11”。同样,标记为“C12”的信号被提供给相加器84的第三输入端。相加器84提供一个标记为“S12”的和输出、一个传播信号“P12”和一个标记为“G12”的发生信号。同样,标记为“C18”的信号被提供给相加器82的第三输入端。相加器82输出一个标记为“S18”的和信号、一个标记为“P18”的传播信号和一个标记为“G18”的发生信号。标记为“C19”的进位信号提供了相加器80的第三输入。相加器80输出一个标记为“S19”的和信号、一个标记为“P19”的传播信号和一个标记为“G19”的发生信号。由相加器80至88输出的每个传播信号和发生信号均被提供给高进位超前逻辑电路102。高进位超前逻辑电路102输出一个标记为“C20”的进位信号。
尽管图7中未画出,由相加器92至100和低进位超前逻辑电路104所产生的每一个进位信号、和信号、传播信号和发生信号也被提供给低状态标志电路108。J低信号也被提供给低状态标志电路108。同样,由相加器80至88以及高进位超前逻辑电路102所形成的每一个进位信号、和信号、传播信号和发生信号也被提供给高状态标志电路106。J高信号也被提供给高状态标志电路106。低状态标志电路108提供了多个信号,分别标记为:“S低”,“V低”,“N低”,“H低”和“Z低”。高状态标志电路106提供了多个信号,分别标记为“S高”,“V高”,“N高”,“H高”和“Z高”。低状态标志电路108和高状态标志电路106的每一个输出经结果总线120传送。
在执行模糊逻辑运算期间,数据处理***20的用户可以利用有记忆形式的指令MEM(英文“隶属评价”的前三个字母)来完成***输入的模糊化。在此所述发明的实施例中,用户必须在执行MEM指令之前将待模糊化的输入贮存到***输入寄存器64中。另外,用户还必须在执行单元14中第一个变址寄存器(未画出)中存储指针。指针指向识别隶属集合的梯形所需四个点的起始地址位置。正如图2所述,这四个点分别标记为点1,点2,斜率1和斜率2。在另一种格式中,用户可以将这些值的每一个当作指令的操作数来提供。这样的技术在数据处理技术中为大家所熟知,故这里不予详述。用户还必须在执行MEM指令之后,为已模糊化的数据规定一个贮存位置。在有一种格式中,第二个变址寄存器可以用来为已模糊化的数据指示该贮存位置。另外,***输入值应存贮在累加器64中。
在本发明的实施例中,执行MEM指令是按照图8所表示的流程图来完成的。流程图提供了执行MEM指令期间所完成每一个功能的简单概述。每个功能更详细的阐述将在执行MEM指令的举例时进行。
正如图8所示,当MEM指令被译码的时候,就进行了执行MEM指令的第一步。存贮在变址寄存器中的地址被读出,并被用于同时从内部存储器32的地址X存取点1和点2。然后,地址增加到下一地址点,即X+2。
然后,增量1值和增量2值同时被产生。增量1值是把点1值从***输入寄存器64的存数中减去的结果。增量2值是把***输入寄存器64的存数从点2值中减去的结果。增量1值和增量2值均被贮存在增量寄存器60中。
接着,如果点1值等于$00,则ZP2信号被认定且用1的二进制值锁住。同样,如果点2值等于$FF,则ZP4信号被认定且用1的二进制值锁住。
然后,斜率1和斜率2的值被从内部存储器32的地址X+2上取得并同时贮存在数据缓冲器42中。然后,地址增加到下一地址点,即X+4。
增量1值和增量2值被测试,以决定二者中是否有负值。如果增量1值和增量2值中有一个是负值,那么,***输入值就处于现行正测试的隶属集合之外。因此,数据缓冲器42的内容被清除,以强制隶属度为$00。另外分别贮存在锁存器138和130中的ZP2和ZP4值被清除。
接着,增量1值和增量2值的每一个值的高四位被测试,以决定哪一值等于十六进制值的$00。如果增量1值的高四位等于$0,那么Z1标志被认定。同样,如果增量2值的高四位等于$0,那么Z3标志被认定。
如果Z1标志被认定,则增量1值是乘数1值,且斜率1值是被乘数1值。否则,斜率1值是乘数1值而增量1值是被乘数1值。如果Z3标志被认定,否增量2值是乘数2值,且斜率2值是被乘数2值。否则,斜率2值是乘数2值而增量2值是被乘数2值。
接着产生出增量1值和斜率1值的乘积。另外,增量2值和斜率2值和乘积在两个同时进行的相乘操作中被同时产生出来。
如果增量1值和斜率1值的乘积比$FF大,那么认定高饱和标志(S高)。另外,如果J高信号被认定,那么S高信号被认定。如果斜率1值和增量1值二者之中没有一个值在其高四位中有一个十六进制值$0,则J高被认定。在点1和斜率1都有十六进制值$00的特定情况下,J高也被认定。如果点1值等于$00,则ZP2信号被认定;如果斜率1值等于$00,则Z2信号被认定。
同样,如果增量2值和斜率2值和乘积比$FF大,那么认定低饱和标志(S低)。另外,如果J低信号被认定,那么S低信号被认定。如果斜率2值或增量2值二者之中没有一个值在其高四位中有一个十六进制值$0,则J低被认定。另外,Z1信号和Z2信号必须被“取消”。在点2值有十六进制值$FF和斜率2值有十六进制值$00的特定情况下,J低也被认定。如果点2值等于$FF,则ZP4信号被认定;若斜率2值等于$00,则Z4信号被认定。
如果S高信号和S低信号都被认定,则***输入的隶属度就是$FF。如果S高被“取消”而S低信号被认定,则***输入的隶属度等于增量1值和斜率1值的乘积。否则,隶属度就等于增量2值和斜率2值的乘积。
然后,隶属度被提供给内部存储器32中用户所规定的地址,并且MEM指令的执行被终止。
图8的流程图提供了数据处理***10中执行MEM指令的概述。现在我们将给出更详细的举例。
在操作期间,用户可能通过贮存在外部或内部存储器32中的软件程序将MEM指令提供给数据处理***10。倘若MEM指令是由外部源提供给数据处理***10的,那么MEM指令就经外部数据总线33输入到外部总线接口30。紧接着外部总线接口30就将MEM指令经内部数据总线34提供给CPU12。如果MEM指令由内部存储器32中的软件程序提供,那么,MEM指令就经内部数据总线34提供给CPU12。在CPU12中,执行单元14将MEM指令提供给指令译码逻辑电路18以响应从总线控制逻辑电路16、控制单元20和定序器22所接收到的控制信号。紧接着,指令译码逻辑电路18对MEM指令译码以便提供为正确执行MEM指令需要的多个控制信号和信息信号。
当接收并对MEM指令译码时,执行单元14开始了***输入模糊化所需的步骤。如上所述,指定待模糊化的值的***输入,由数据处理***10的用户在执行MEM指令前贮存在***输入寄存器64中。
除了***输入值外,数据处理***10的用户还要求输入四个值,这四个值定义了模糊逻辑运算的具体实现中的每个隶属集合。例如在图1中,如果温度被模糊化,那么有五个隶属集合需要被定义。因此,为了足以区别整个***中的每个隶属集合就需要全部二十个值。正如前面图2所指明并显示的,为使单一的隶属集合一致化所需要的值是点1,点2,斜率1和斜率2。这些点的每一个都由八位二进制值来代表。
在模糊化操作期间,必须相对于***输入值来评价每个隶属集合。在图1所示的模糊逻辑***的情况下,为***输入温度出现了五个隶属集合评价。因此,重要的是要使决定每个隶属集合的隶属度所需的时间总量最小。
变址寄存器中指针指向内部存储器32中点1值的地址。当从内部存储器32存取时,点1值经外部信息总线40被提供给数据缓冲器42。数据缓冲器40经信息总线A66把点1的值送到A输入多路器54。A输入多路器54紧接着将点1值提供给ALU56,在那里点1值被从***输入值中减去,以提供增量1值。增量1值经信息总线B68被提供给增量寄存器60。另外,数据缓冲器42将点1值经已被缓冲的数据1信号提供给标志产生逻辑电路48。在图5的标志产生逻辑电路48中,点1值的每一位均被提供给或非门112的输入端。或非操作的结果(即Z2信号)在按照时基控制信号所决定的时间点上被贮存在锁存器136中。
在本发明的这个实施例中,点1值和点2值同时从内部存储器32中存取。这两个值经外部信息总线40传送到数据缓冲器42。数据缓冲器42经信息总线B68把点2值送到B输入多路器58。B输入多路器58紧接着把点2值提供给ALU56,在那里***输入值被减去以提供增量2值。信息总线B68把增量2值提供给增量寄存器60。另外,数据缓冲器42经已被缓冲的数据2信号把点2值提供给标志产生逻辑电路48。在图5的标志产生逻辑电路48中,点2值的每一位都被提供给与门138的输入端。与操作的结果在按照时基控制信号所决定的时间点上被贮存在锁存器130中。“与”操作检测点2值是不是等于$FF。
ALU56执行上述的每一次减操作,以使增量1和增量2值同时得到计算。当在正常操作模式时,ALU56进行16位算术运算。另外,当在分离操作模式时,ALU56能够同时执行两个独立的8位计算。由于两个8位计算是同时进行的,所以就不象ALU在只完成16位操作的情况那样有周期被浪费。因此,当完成8位算术运算时,ALU56大大提高了执行单元14的速度和效率。紧接着我们将详细讨论ALU56的操作。
变址寄存器中的指针紧接着指向内部存储器32中斜率1值的地址。内部存储器32经外部信息总线40将8位斜率1值和8位斜率2值提供给数据缓冲器42。数据缓冲器42通过16位已被缓冲的数据信号把两个斜率值送到标志产生逻辑部分48。
在计算出增量1和增量2值并接收到斜率1和斜率2值时,标志产生逻辑电路48能够产生多个标志,它们是决定现正测试的隶属集合的隶属度所需的。正如图5所示,增量1值,增量2值,斜率1值和斜率2值的高四位分别被提供给或非门110、或非门116、或非门140和或非门146。
或非门140产生S2信号,而或非门146产生S4信号。当斜率1值的高四位有十六进制值$0时,S2信号被认定。同样,当斜率2值的高四位有十六进制值$0时,S4信号被认定。
在标志产生逻辑部分48中,斜率1值和斜率2值由已被缓冲的数据信号分别提供给或非门112和或非门118。当斜率1值等于十六进制$00时,Z2标志被认定。由或非门112产生的Z2标志被提供给锁存器136和与门134的数据输入端。当时基控制信号有第一预定逻辑值时,Z2标志被锁在锁存器136中。另外,当时基控制信号有第二预定逻辑值时,锁存器136将先前已被锁住的ZP2信号提供给与门134。与门134被用来产生JP高信号。
当斜率2值等于十六进制$00时,Z4标志被认定。由或非门118产生的Z4标志被提供给与门132。与门138的输出被提供给锁存器130的数据输入。当时基控制信号有第一预定逻辑值时与门138的输出被锁在锁存器130中。另外,当时基控制信号有第二预定逻辑值时,锁存器130将先前已被锁住的ZP4信号提供给与门132。与门132用来产生JP低信号。
仅当增量1值高四位的每一位都被“取消”时,Z1标志信号才被认定。同样,当增量2值的高四位有一个十六进制值$0时,Z3标志信号才被认定。标志Z1和Z3中的每一个都紧接着被用在操作数分配步骤中,这将在后面作深入的讨论。
除了增量1和增量2值之外,结果总线120也将N高和N低信号传送给或门114以产生一个Nmem信号。如果由ALU56提供的增量2值小于0,则N低信号被认定。同样,如果由ALU56提供的增量1值小于0,则N高信号被认定。正如前述,如果增量1值和增量2值中有一个值小于0,则***输入就不是正被检验的隶属集合的成员。
因此当Nmem信号被认定时,***输入在正被测的隶属集合中的隶属度为零。接着,Nmem信号被提供给A输入控制逻辑52。当Nmem信号被认定时,它能使A输入控制逻辑52去认定A控制信号,致使A输入多路器52将十六进制值$00提供给ALU56。接着,ALU56经信息总线B68将$00的值提供给数据缓冲器42。
另外,当Nmem信号被认定时,锁存器130被复位,致使ZP4信号被“取消”。因此,JP低信号可以不被错误认定。同样,锁存器136被复位,致使ZP2信号被取消。因此,JP高信号可以不被错误认定。
Nmem信号、S2信号和Z1信号都被提供给或非门142以产生Js高信号。然后Js高信号和JP高信号被进行“或”运算,以产生J高信号。
提供J高信号是为指示一种特定情况,即点1值和斜率1值都有一个十六进制值$00。这种情况可能发生在隶属集合是一个部分梯形,致使隶属度在点1边界值上为一个$FF值的时候。图1所示的冷温度隶属功能就是这特定情况的一个例子。当输入值落入正被评价的隶属集合内时,J高被提供给ALU56,以强制饱和标志S高被认定。如果Z1、S2和Nmem信号均被“取消”时,J高信号亦被认定。这符合这样的情况,在此情况中增量1值和斜率1值都不是$0F或小于$0F,且现行的输入在隶属集合之内。
Nmem信号、S4信号和Z3信号都被提供给或非门148,以产生Js低信号。然后,Js低和Js高信号被“或”运算,以产生J低信号。
提供J低信号是为指示一种特定情况,即点2值有一个十六进制值$FF且斜率2值为一个十六进制值$00。这种情况可能发生在隶属集合是一个部分梯形并致使隶属度终止在点2边界值上的$FF上的时候。图1所示的热温度隶属功能就是这种特定情况的一个例子。当输入值落入现正被评价的隶属集合内时,J低信号被提供给ALU56,以强制饱和标志S低被认定。如果Z3、S4和Nmem信号均被“取消”,则J低信号亦被认定。这对应这样的情况,即增量2和斜率2值都不是$0F或小于$0F,且现行的输入在隶属集合内。
但是,如果***输入值是在现正被检验的隶属集合内,那么Nmem信号被“取消”,且Z1和Z3标志信号被提供给担任数分配逻辑50和结果选择逻辑46,以决定隶属集合中的隶属度。
通过获得定义隶属集合的梯形中饱和点的值、增量1和斜率1的乘积值或增量2和斜率2的乘积值三者中的最小值,来决定隶属集合中的隶属度。在图2所示的例子中,饱和点的十六进制值是$FF,译成小数值就成0.996。
为了计算增量1和斜率1的乘积以及增量2和斜率2的乘积,开发了一种方法以确保快速相乘运算。正如现有技术中众所周知的,当乘数小于被乘数时,相乘运算完成得比较快。如果,正如本例,隶属集合的饱和值为$FF,则数学分析表明,组成乘积的增量项或斜率项中至少有一项必须小于等于$0F。但有一种情况例外,那就是现行的***输入值在隶属集合之外或者在隶属集合的饱和区内。
藉助于测试增量值和斜率值的四位高阶位,就可以把小于等于十六进制值$0F的第一项用作乘数。因此,用于完成相乘运算所需的时间就缩短了。如果增量1值和斜率1值都比十六进制值$0F大,那么J高信号就强制S高饱和标志被认定。同样,如果增量2值和斜率2值都比十六进制值$0F大,那么J低信号就强制S低饱和标志被认定。
Z1标志信号用于表明增量1或斜率1值是不是被作为四位乘数1信号提供。同样,Z3标志信号用于表明增量2或斜率2值是不是被作为四位乘数2信号提供。图6所示的操作数分配逻辑50提供了一种实现办法,以决定被完成的两个相乘运算中每一个运算的乘数值。
正如图6所示,多路器72决定是指定增量1值为4位乘数1信号还是指定斜率1值为4位乘数1信号。如果Z1标志信号被认定,那么增量1值经4位乘数1信号被传送。如果Z1信号未被认定,那么4位乘数1信号将被予斜率1的值。另外,如果Z1信号被指定,那么多路器74把斜率1值作为8位被乘数1信号提供给A高。如果Z1信号被“取消”,那么指定增量1值为8位被乘数1信号。
同样,多路器76根据Z3标志信号的值决定是增量2值为乘数2信号还是斜率2值为乘数2信号。如果Z3标志信号被认定,那么多路器76把增量2信号作为乘数2信号提供。如果Z3信号未被认定,那么4位乘数2信号将被指定为斜率2的值。另外,如果Z3标志信号被认定,多路器78提供斜率2信号来作为被乘数2信号。如果Z3信号被“取消”,那么增量2值被指定为8位被乘数2信号。
乘数1和乘数2信号从操作数分配逻辑部分50传送到A输入控制逻辑电路52。A输入控制逻辑电路52对乘数1和乘数2信号进行处理,以提供A控制信号去决定A输入多路器54的专用移位操作。
在操作期间,乘数1信号(它可能是增量1值也可能是斜率1值)被提供给A输入控制逻辑52,以决定为完成第一次相乘操作,被乘数1信号是被移位0次、1次或2次。另外,A输入控制逻辑部分52可被乘数1信号被取消或归零。A控制信号被提供给A输入多路器54,以表明行进行的操作的型式。被乘数1信号经信息总线A66高端传送到A输入多路器54。A输入控制逻辑52按照A控制信号对被乘数1信号进行修正,并将修正后的被乘数1信号提供给ALU56。同样,乘数2信号(可能是增量2值也可能是斜率2值)也被提供给A输入控制逻辑52。乘数2信号被用来使被乘数2信号移位0次、1次或2次,以同时完成第二次相乘操作。此外,A输入控制逻辑52可使被乘数2信号为“非”或0。乘数2信号经信息总线A66的低端被传送到A输入多路器54。A输入控制逻辑52按照A控制信号对被乘数2信号进行修正,并接着将修正后的被乘数2信号提供给ALU56。
B输入多路器58的控制由MEM指令译码期间所产生的外部微ROM控制信号来提供并经微ROM控制总线65传送。这样的微ROM控制信号的产生、发送以及运用,在数据处理技术中是公知的,在此不将赘述。在此所述的例子中,预置的局部乘积$00经B输入多路器58提供给ALU56。
在从A输入控制逻辑电路52接收适当的A控制信号时,A输入多路器54提供修正后的被乘数1信号和修正后的被乘数2信号给ALU56的高端和低端。同时,B输入多路器58把预置的局部乘积分别提供给ALU56的高端和低端。
图7中更详细地画出了ALU56。在操作期间,修正后的被乘数2信号被提供给相加器92至100中的一个对应相加器。修正后的被乘数2信号的位9标记为“a9”连接至相加器92的第一输入端。同样,修正后的被乘数2信号的第8至0位分别被连接至相加器94,96,98和100的第一输入端。预置的标记为“b9”的局部乘积的位9被连接到相加器92的第二输入端。预置的局部乘积的第8至0位也分别被连接到相加器94,96,98和100的第二输入端。
标记为“C0”的进位信号被提供给相加器100的第三输入端。C0信号通常由ALU56之外的来源提供,以响应正在执行的操作和乘数2信号的值。根据三个输入信号的每一个,相加器100提供三个输出信号。第一个输出信号是S0信号,它等于:
(1)S0=a0≈b0≈c0。
第二个输出信号是发生信号G0,它等于:
(2)G0=a0·b0,
第三个输出信号是传播信号P0,它等于:
(3)P0=a0+b0。
响应于G0和P0信号,低进位超前逻辑电路104产生一个C1信号,它被提供给相加器98的第三输入端。C1信号表述为:
(4)C1=G0+P0·C0。
相应于对a1,b1和c1信号,相加器98将标记为“G1”的发生信号和标记为“P1”的传播信号提供给低进位超前逻辑电路104。
响应于G1,P1和C1信号,低进位超前逻辑电路104产生一个C2信号,它被提供给相加器96的第三输入端。C2信号由下列等式计算:
(5)C2=G1+P1(G0+P0)C0。
然后相加器96提供一个标记为“G2”的发生信号和标记为“P2”的传播信号给低进位超前逻辑电路104。
接着,低进位超前逻辑电路104产生一个进位信号,它被提供给ALU56低端上其余相加器(94,92)的第三输入端。其余的进位信号这样计算:先前的发生项加上先前的传播项与进位项之积。虽然这里没画出,另外的相加器被用来计算A输入低端和B输入低端所提供的第3至7位值之和。
在从最后的相加器(相加器92)接收传播项和发生项时,低进位超前逻辑电路104提供一个标记为“C10”的进位信号。C10信号被提供给缓冲器90。响应于分离模式控制信号,缓冲器90把C10进位信号前送至ALU56高端的下一个相加器或提供在其中产生的另一个进位值。分离模式控制信号由执行单元14以外的源提供。例如,在执行MEM指令期间,分离模式控制信号在指令译码期间产生。另外,分离模式控制信号也许由数据处理***10的用户所规定的、指令以外的其它来源来提供。
如果把C10进位信号作为Cin进位信号送到相加器88,那么ALU56的操作象典型的十六位算术逻辑单元一样在技术上是公知的。但是,如果Cin进位信号是由低进位超前逻辑电路104之外的其它来源提供的话,那么ALU56现在工作在分离模式。在分离模式操作中,ALU56可同时提供两个8位的、相互无关的结果。在执行MEM指令期间,ALU56工作在分离模式,以同时提供增量1和斜率1值和乘积以及增量2和斜率2值的乘积。另外,ALU56在分离模式下操作时还计算增量1和增量2值的乘积。另外,ALU56在分离模式下操作时还计算增量1和增量2的值。因此,由于在分离模式操作,ALU56有能力提供快而有效的八位操作的结果。
另外,在ALU56中,低状态标志电路108提供关于ALU56低端操作的状态信息。低状态标志电路108提供多数状态信号:S低、V低、N低、H低和Z低,这些信号的每一个均经结果总线120传送。虽然这里未示出,相加器92至100的每个输出均被提供给低状态标志电路108。在数据处理技术中这些线路是众所周知且很容易用普通的技术实现。每个状态信号都由多个“和”信号及ALU56低端产生的“进位”信号组合决定。
在此所述发明的实现中,S低信号由下列等式表述:
(6)S低=S9+S8+H低。
V低,N低,H低和Z低信号可以分别由下式表述:
(7)V低=C6≈C7,
(8)N低=S8,
(9)H低=C3,
(10)Z低=S7+S6+S5+…+S0。
另外,相加器92至100输出的“和”信号从ALU56经结果总线120传送。相加器92至100输出的“和”信号代表乘数2和被乘数2信号之乘积的相应位。而乘数2和被乘数2信号之乘积等于增量2和斜率2信号之乘积。
在操作期间,ALU56高阶端起的作用与低阶端相类似。标记为“Cin”的进位信号被提供给相加器88的第三输入端。正如前面提到的,Cin信号可以由ALU56之外的源提供,也可以由从低进位超前逻辑电路104来的C10进位信号提供。根据三个输入信号的每一个,相加器提供三个输出信号。第一个输出信号S10等于:
(11)S10=a10≈b10≈Cin。
第二个输出信号是发生信号G10,它等于:
(12)G10=a10·b10。
第三个输出信号是传播信号P10,它等于:
(13)P10=a10+b10。
响应于G10信号和P10信号,高进位超前逻辑电路102产生一个C11信号,它被提供给相加器86的第三输入端。C11信号表述为:
(14)C11=G10+P10·C10。
响应于a11,b11和c11信号,相加器86提供一个标记为“G11”的发生信号和标记为“P11”的传播信号给高进位超前逻辑电路102。
响应于G11,P11和C11信号,高进位超前逻辑电路102产生一个C12信号;它被提供给相加器84第三输入端。C12信号由下列等式计算:
(15)C12=G11+P11(G10+P10)C10。
然后,相加器84提供一个标记为“G12”的发生信号和标记为“P12”的传播信号给高进位超前逻辑电路102。
接着,高进位超前逻辑电路102产生一个进位信号;该信号被提供给ALU56高端上的其余相加器(80,82)的第三输入端。每个其余的进位信号这样计算:先前的发生项加上先前的传播项与进位项之乘积。虽然这里未示出,另一些相加器用来计算A输入高端和B输入高端所提供的第13至17位值之和。
从最后一个相加器即相加器80接收到传播项和发生项时,高进位超前逻辑电路102提供一个标记为“C20”的进位信号。C20信号从ALU56经结果总线120输出用于序列操作。
另外,在ALU56中,高状态标志电路106提供关于ALU56高端操作的状态信息。高状态标志电路106提供多个状态信号:S高,V高、N高、H高和Z高,这些信号的每一个均经结果总线120传送。相加器80至88的每一个输出均被提供给高状态标志电路106。同样,这些线路在数据处理技术中是众所周知且很容易用一种普通技术来实现。每个状态信号由ALU56高端所产生的多个和信号以及进位信号联合决定。
在此所述发明的实现中,S高由下列等式来表述:
(16)S高=S19+S18+J高。
V高,N高和H高信号可以分别表述如下:
(17)V高=C16≈C17,
(18)N高=C18,
(19)H高C13,
(20)Z高=S19+S18+S17+…+S10。
另外,相加器80至88输出的和信号从ALU56经结果总线120传送。相加器80至88输出的和信号代表乘数1和被乘数1信号之乘积的相应位。又,乘数1和被乘数1信号之乘积等于增量1和斜率1信号的乘积。
从ALU56高端和低端来的每一个状态位接着被提供给结果选择逻辑46。接着,结果选择逻辑46用S低和S高信号决定增量1和斜率1信号之乘积、增量2和斜率2信号之乘积或饱和值$FF是否将被提供来作为正被检验的隶属集合的隶属度。
***输入值落入隶属集合梯形内的所有情况中,要么S高被认定,要么S低将被认定,要么S高和S低均被认定。如果S低和S高信号均被认定,则***输入是正受测隶属集合的成员并具有饱和点的隶属度(在本例中为饱和点为$FF)。因此,当S低和S高信号均被认定时,结果选择逻辑电路46认定强制信号$FF强制数据缓冲器42的内容是$FF,表示***输入是隶属集合的成员且有隶属度$FF。
如果S低信号被“认定”,而S高信号被“取消”,则结果选择逻辑电路46认定选择信号将增量1和斜率1信号的乘积贮存于数据缓冲器42之中。同样,如果S低信号被“取消”,而S高信号被认定,则结果选择逻辑电路使选择信号被“取消”,以将增量2和斜率2信号贮存于数据缓冲器42之中。
如果S高和S低被“取消”,则***输入值不在边界值定义的隶属集合梯形之内。在***输入值落入隶属集合梯形之外的所有情况中,Nmem信号将被认定。Nmem信号又引起A输入控制逻辑52在相乘操作期间选择零为ALU56的输入。结果选择逻辑电路46使强制信号$FF和选择信号被“取消”,且十六进制值$00被贮存在数据缓冲器42中。因此,结果选择逻辑电路46决定了MEM隶属度计算的结果值并将该结果提供给数据缓冲器42。当数据缓冲器42受到执行单元42以外的源的请求时,它经外部信息总线40提供该结果。
这里提供了一个电路的方法,用于只有一个软件指令来决定隶属集合的隶属度。在此所述的例子中,软件指令就是MEM指令。当用MEM指令编程时,数据处理***10能够只用一个软件指令来决定隶属集合的隶属度,且可以完成得十分快捷。先前的实施方法需要极大量的软件码,这显然需要很多的执行时间。在一个完成隶属度计算的典型软件程序中,MEM指令将减轻软件指令的有效数目。例如,利用MC68HC11指令组实现的软件程序来完成隶属度计算,典型地需要31条指令。MEM指令都替代了MC68HC11程序中所有31条指令。另外,MEM指令提供一个结果要比先前的软件实现隶属度计算快71个周期。
MEM指令能够软快而有效地实现隶属度的计算是因为它是数据处理***10的指令组的一个成员。我们知道,指令作为指令组的一个成员,其执行起来要比外部程序快,外部程序要对数据处理***10进行编程以模拟该指令。另外,由操作数分配逻辑电路50所完成的作用也有助于增强实现MEM指令的数据处理***10的功能。操作数分配逻辑电路50识别出用在计算隶属度时的乘数和被乘数二者至少有一个必须是高四位有十六进制值$0。因此,使高四位有$0的值作乘数,相乘操作将会以更有条理的方式更快更完整地进行。
另外,在分离模式下操作ALU56可以同时产生两个8位结果,所以时间还可进一步节省。当在分离操作模式时,ALU56提供一个可以用来产生两个8位结果的唯一的电路;而在非分离操作模式下,则产生一个16位的结果。由于这里所述例子的性质,在增量值和斜率值的减和乘时,只产生8位结果。因此,在执行MEM指令期间,ALU56可以运作在分离模式并且减和乘这两个运算可以同时完成。所以,分离方式操作时,完成这些操作所典型地需要的时间被有效地减半。
这里所述发明的实现仅用举例方法提供。但是,为执行这里所述的功能可以有许多其它的实施方案。例如,定义隶属集合所需要的点可以由数据处理***10的用户作为MEM指令的操作数来提供,而不是象先前贮存在存储器中的数据值。另外,ALU56可以设置成能获得32位结果。在乘或减运算的情况中,在分离模式操作期间,高端和低端都将产生一个十六位的结果。
虽然在这里描述了本发明的原理,但本领域技术人员应清楚地明白,这里的描述仅是以举例的方法来进行的,不能作为对本发明范围的限制。因此,借助所附的权利要求书,本发明应覆盖属于其真正的精神和范围之内的所有变形。
Claims (10)
1.一种用于在数据处理***中进行模糊逻辑运算的方法,该模糊逻辑运算决定一个输入值在由多个边界值限定的一个预定隶属集合中的隶属度,该方法的特征在于以下步骤:
接收一个用于在数据***中开始执行模糊逻辑运算的隶属评价指令;
对上述隶属评价指令进行译码,以提供多个控制信号;
从输入值减去上述的多个边界值中的一个第一个边界值以产生第一增量值,同时从上述多个边界值中的一个第二边界值减去输入值以产生第二增量值,
根据上述的第一、第二增量值产生多个标志信号;
根据上述的多个标志信号中的至少一个选择一个乘法运算的操作数;
通过以下的方式执行上述的乘法运算;将第一个增量值与多个边界值中的第三个值相乘以提供第一个结果,同时将第二个增量值与多边界值中的第四个值相乘以提供第二个结果,上述的多个边界值中的第三个值除以上述的多个边界值中的第四个值的结果中包含一个斜率值;以及
提供隶属度信号,当第一增量值或第二增量小于零时,该隶属度信号表示输入值不包括在预定的隶属集合中;当第一增量值和第二增量值均不小于零时,该隶属度信号为上述第一结果、第二结果和上述的多个边界值中的第五个值中的最小值。
2.如权利要求1所述的方法,其特征在于上述的产生多个标志信号的步骤还包括以下的步骤:
产生一个第一标志值,该第一标志值表示一个指示着上述第一增量值的一定幅度的预定部分的值;以及
产生一个第二标志值,该第二标志值表示一个指示着上述第二增量值的一定幅度的预定部分的值。
3.如权利要求1所述的方法,其特征在于所述的为乘法运算选择操作数的步骤还包括以下步骤:
当第一标志信号为第一预定逻辑电平时,将第一增量值作为乘法运算的第一乘数提供,将上述的多个边界值中的第三个值作为第一被乘数提供,
当第一标志信号为第二预定逻辑电平时,将上述多个边界值中的第三个值作为乘法运算的第一乘数提供,第一增量值作为第一被乘数提供,
当第二标志信号为第一预定逻辑电平时,将第二增量值作为乘法运算的第二乘数提供,将上述的多个边界值中的第四个值作为第二被乘数提供,以及
当第二标志信号为第二预定逻辑电平时,将上述的多个边界值中的第四个值作为第二乘数提供,将上述的第二增量值作为第二被乘数提供。
4.如权利要求1所述的方法,其特征在于:上述的多个边界值中的第五个值为一个饱和值,该饱和值是隶属集合中的最大值。
5.一种用于执行模糊逻辑运算的数据处理***,该数据处理***的特征在于包括:
输入装置,用于接收在数据处理***中开始执行模糊逻辑运算的隶属评价指令,该输入装置还接收一个输入点;
指令译码装置,该指令译码装置与用于接收隶属评价指令的输入装置相连;用于对上述隶属评价指令进行译码,产生多个控制信号,
用于存贮多个边界值的存贮装置;
寄存器,用于在模糊逻辑运算执行期间存贮多个增量值,
算术逻辑电路,该算术逻辑电路与上述输入装置、指令译码装置、存贮装置和寄存器相连,通过从输入值减去多具边界值中的第一边界值产生多个增量值中的第一增量值,从多个边界值中的第二边界值减去输入值产生多个增量值中的第二增量值,上述算术逻辑电路还根据上述的多个边界值、输入值、控制信号和第一、第二增量值产生第一、第二乘积,
结果选择器,该结果选择器的第一输入端与算术逻辑电路相连以接收第一增量值,第二输入端与算术逻辑电路相连以接收第二增量值,第三输入端与算术逻辑电路相连以接收第一乘积,第四输入端与算术逻辑电路相连以接收第二乘积,第五输入端用于接收多个边界值中的第五边界值;该结果选择器输出一个隶属度信号,
根据上述的第一、第二增量值产生多个标志信号的装置,以及
根据上述的多个标志信号中的至少一个来选择乘法运算的操作数的装置。
6.如权利要求5所述的数据处理***,特征在于:所述的产生多个标志信号的装置为一个标志产生电路,该标志产生电路与一个用于接收第一、第二增量值的加法器电路相耦合,该标志产生电路产生一个指示着第一增量值中的预定部分的值的第一标志信号,又产生一个指示着第二增量值中的预定部分的值的第二标志信号。
7。如权利要求5所述的数据处理***,其特征还在于:上述的指令译码装置产生一个表示上述的第一、第二增量值应该并行地产生的第一控制信号。
8.如权利要求5所述的数据处理***,其特征还在于:上述的指令译码装置产生一个表示上述的第一、第二乘积应该并行地产生的第二控制信号。
9.如权利要求5所述的数据处理***,其特征还在于:上述的算术逻辑电路产生上述的第一、第二增量值,当所述第一增量值和第二增量值中有一个小于零时,上述的结果选择器生成表示输入值不包括在预定的隶属集中的上述隶属信号;当所述第一增量值和第二增量值都不小于零时,上述的结果选择器生成等于上述的第一结果、第二结果和多个边界值中的第五边界值的最小值的上述隶属信号。
10.如权利要求5所述的数据处理***,其特征在于,上述的算术逻辑单元工作在分离运算模式。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US899,975 | 1992-06-17 | ||
US07/899,975 US5295229A (en) | 1992-06-17 | 1992-06-17 | Circuit and method for determining membership in a set during a fuzzy logic operation |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1080411A CN1080411A (zh) | 1994-01-05 |
CN1058344C true CN1058344C (zh) | 2000-11-08 |
Family
ID=25411805
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN93106696A Expired - Fee Related CN1058344C (zh) | 1992-06-17 | 1993-06-05 | 数据处理***中进行模糊逻辑运算的方法和数据处理*** |
Country Status (5)
Country | Link |
---|---|
US (1) | US5295229A (zh) |
EP (1) | EP0574714A3 (zh) |
JP (1) | JP3121712B2 (zh) |
KR (1) | KR100251443B1 (zh) |
CN (1) | CN1058344C (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106228248A (zh) * | 2016-07-18 | 2016-12-14 | 广西电网有限责任公司电力科学研究院 | 一种基于模糊fmea分析的***自动故障诊断方法 |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5553259A (en) * | 1993-07-16 | 1996-09-03 | Unisys Corporation | Apparatus and method for synchronizing the simultaneous loading of cache program word addresses in dual slice registers |
US5561738A (en) * | 1994-03-25 | 1996-10-01 | Motorola, Inc. | Data processor for executing a fuzzy logic operation and method therefor |
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 |
EP0675430A1 (en) * | 1994-03-31 | 1995-10-04 | Co.Ri.M.Me. Consorzio Per La Ricerca Sulla Microelettronica Nel Mezzogiorno | Circuit for computing membership functions values in a fuzzy logic controller |
US5486999A (en) * | 1994-04-20 | 1996-01-23 | Mebane; Andrew H. | Apparatus and method for categorizing health care utilization |
WO1995030185A1 (de) * | 1994-04-29 | 1995-11-09 | Siemens Aktiengesellschaft | Verfahren zur fuzzifizierung von an eingängen eines fuzzy-prozessors anliegenden eingangssignalen unter verwendung von eingangszugehörigkeitsfunktionen |
JPH09512366A (ja) * | 1994-04-29 | 1997-12-09 | シーメンス アクチエンゲゼルシヤフト | ファジイプロセッサの入力側に入力されるディジタル入力信号のファジイ化準備及び実行方法 |
US5687289A (en) * | 1994-12-16 | 1997-11-11 | Motorola, Inc. | Circuit and method for determining membership in a set during a fuzzy logic operation |
EP0718753A1 (en) * | 1994-12-22 | 1996-06-26 | Motorola, Inc. | Data processing system for evaluating fuzzy logic rules and method therefor |
US5671332A (en) * | 1994-12-22 | 1997-09-23 | Motorola, Inc. | Data processing system for performing efficient fuzzy logic operations and method therefor |
CN103064652B (zh) * | 1995-08-31 | 2016-07-20 | 英特尔公司 | 控制移位分组数据的位校正的装置 |
US5737493A (en) * | 1995-12-11 | 1998-04-07 | Motorola, Inc. | Instruction set for evaluating fuzzy logic rules |
AUPO247496A0 (en) | 1996-09-23 | 1996-10-17 | Resmed Limited | Assisted ventilation to match patient respiratory need |
US8782624B2 (en) * | 2011-12-15 | 2014-07-15 | Micron Technology, Inc. | Methods and systems for detection in a state machine |
DE102015219091A1 (de) | 2015-10-02 | 2017-04-06 | Robert Bosch Gmbh | Elektrohydraulisches Kompaktaggregat |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE3936503A1 (de) * | 1988-11-04 | 1990-05-10 | Olympus Optical Co | Digitales verschwommen-folgerungssystem |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4694418A (en) * | 1984-03-23 | 1987-09-15 | Omron Tateisi Electronics Co. | Fuzzy logic basic circuit and fuzzy logic integrated circuit operable in current mode |
US4860243A (en) * | 1984-03-23 | 1989-08-22 | Omron Tateisi Electronics Co. | Fuzzy logic semifinished integrated circuit |
US4716540A (en) * | 1984-07-06 | 1987-12-29 | Omron Tateisi Electronics Co. | Multi-functional fuzzy logic circuit |
US5189636A (en) * | 1987-11-16 | 1993-02-23 | Intel Corporation | Dual mode combining circuitry |
US5165011A (en) * | 1988-09-22 | 1992-11-17 | Omron Tateisi Electronics Co. | System for switching a rule group |
JPH02176935A (ja) * | 1988-12-28 | 1990-07-10 | Olympus Optical Co Ltd | ディジタルファジィ回路 |
JPH02208787A (ja) * | 1989-02-09 | 1990-08-20 | Yasuo Nagazumi | フアジイ演算回路および該回路を用いたファジイ計算機 |
US5179634A (en) * | 1989-04-14 | 1993-01-12 | Omron Corporation | System for synthesizing new fuzzy rule sets from existing fuzzy rule sets |
JPH02294831A (ja) * | 1989-05-10 | 1990-12-05 | Olympus Optical Co Ltd | デジタルファジィ回路 |
JPH0690668B2 (ja) * | 1989-10-20 | 1994-11-14 | 三菱電機株式会社 | ファジイ演算装置 |
JP2510333B2 (ja) * | 1990-06-21 | 1996-06-26 | 株式会社日立製作所 | 空調機の制御装置 |
-
1992
- 1992-06-17 US US07/899,975 patent/US5295229A/en not_active Expired - Lifetime
-
1993
- 1993-05-17 EP EP19930107988 patent/EP0574714A3/en not_active Withdrawn
- 1993-06-01 JP JP05154500A patent/JP3121712B2/ja not_active Expired - Fee Related
- 1993-06-05 CN CN93106696A patent/CN1058344C/zh not_active Expired - Fee Related
- 1993-06-17 KR KR1019930011056A patent/KR100251443B1/ko not_active IP Right Cessation
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE3936503A1 (de) * | 1988-11-04 | 1990-05-10 | Olympus Optical Co | Digitales verschwommen-folgerungssystem |
Non-Patent Citations (3)
Title |
---|
AACS-51系列 单片机应用***设计***配量与接口技术 1990.1.1 北京航空航天大学出版社 何立民 * |
AACS-51系列 单片机应用***设计***配量与接口技术 1990.1.1 北京航空航天大学出版社 何立民;AI EXPORT 1992.4.4 AIMPLEMENTINY FUZZY EXPERT RULES IN HARDWARE, JAMES M.SIBIGTR * |
AI EXPORT 1992.4.4 AIMPLEMENTINY FUZZY EXPERT RULES IN HARDWARE, JAMES M.SIBIGTR * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106228248A (zh) * | 2016-07-18 | 2016-12-14 | 广西电网有限责任公司电力科学研究院 | 一种基于模糊fmea分析的***自动故障诊断方法 |
CN106228248B (zh) * | 2016-07-18 | 2019-07-26 | 广西电网有限责任公司电力科学研究院 | 一种基于模糊fmea分析的***自动故障诊断方法 |
Also Published As
Publication number | Publication date |
---|---|
EP0574714A3 (en) | 1994-10-12 |
US5295229A (en) | 1994-03-15 |
JPH0635708A (ja) | 1994-02-10 |
JP3121712B2 (ja) | 2001-01-09 |
KR100251443B1 (ko) | 2000-04-15 |
CN1080411A (zh) | 1994-01-05 |
KR940006038A (ko) | 1994-03-23 |
EP0574714A2 (en) | 1993-12-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1058344C (zh) | 数据处理***中进行模糊逻辑运算的方法和数据处理*** | |
CN1114152C (zh) | 适合于进行饱和运算的处理器及其控制方法 | |
CN1489726A (zh) | 模乘方法及装置及模乘计算单元 | |
CN1121014C (zh) | 具有risc结构的八位微控制器 | |
CN1655118A (zh) | 处理器和编译器 | |
KR19990013698A (ko) | 연산방법 및 연산장치 | |
CN1052315C (zh) | 用于模糊逻辑规则计值的方法 | |
CN1278931A (zh) | 特别适于译码数字音频信号的数字信号处理器 | |
CN1539103A (zh) | 模数增值方法及装置 | |
CN1326566A (zh) | 对多个带符号的数据值执行算术运算的数据处理***和方法 | |
CN1536769A (zh) | 随机序列产生设备、加密/解密设备及其方法和程序 | |
CN1601913A (zh) | 平行化循环冗余码计算方法及*** | |
CN1133994A (zh) | 执行有效模糊逻辑运算的数据处理***及其方法 | |
JPS58129653A (ja) | 乗算方式 | |
CN1133457A (zh) | 估计模糊逻辑规则的数据处理***及其方法 | |
JP2009086762A (ja) | 類似度算出装置及び類似度表示装置 | |
CN1010265B (zh) | 单个半导体芯片上的多处理机 | |
US5687289A (en) | Circuit and method for determining membership in a set during a fuzzy logic operation | |
JPS58225437A (ja) | キヤリ・ルツク・アヘツド加算器 | |
CN106446261A (zh) | 一种基于多平台接口的内容搜索方法和装置 | |
JP2777265B2 (ja) | 高基数開平演算装置 | |
JP2531759B2 (ja) | デ―タ処理装置 | |
JP3017300B2 (ja) | ファジー推論装置 | |
CN1573682A (zh) | 在有限域中实现平方运算的方法和装置 | |
CN1167299A (zh) | 用于评估模糊逻辑规则的电路和方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
ASS | Succession or assignment of patent right |
Owner name: FREEDOM SEMICONDUCTORS CO. Free format text: FORMER OWNER: MOTOROLA, INC. Effective date: 20040813 |
|
C41 | Transfer of patent application or patent right or utility model | ||
TR01 | Transfer of patent right |
Effective date of registration: 20040813 Address after: Texas in the United States Patentee after: FreeScale Semiconductor Address before: Illinois, USA Patentee before: Motorola, Inc. |
|
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20001108 |