在模糊逻辑运算中决定组内资格的电路和方法

文档序号:6407104阅读:145来源:国知局
专利名称:在模糊逻辑运算中决定组内资格的电路和方法
技术领域
本发明一般地讲涉及一种数据处理系统,特别地涉及数据处理系统中模糊逻辑运算的执行。
数据处理器已发展为二进制机器,其输入和输出被译作1或0,不存在其它的可能。在大多数场合是这样的,但常常有一种回答不是简单的“是”或“不”,而是介于这“是”与“不”两者之间的某种东西。为此,人们发展了一个被叫做“模糊逻辑”的概念,以使数据处理器能提供“是”与“不”之间的回答。
模糊逻辑是一个逻辑系统,它有带模糊边界的资格功能(membershipfunction)。资格功能将主观的表述,(例如“温度”),翻译成典型的数据处理器能够识别的值。标志(例如“热的”)用来识别输入值的范围,其边界不是标志在其一边为真而在其另一边则是假的点。相反,一个实现模糊逻辑的系统中,功能的边界渐渐地改变,且有可能一个相邻近的资格组的边界会重叠起来。因此,一个资格度被典型地指定给一个输入值。例如,假定在整个温度范围内有两个资格功能,输入温度可能落在功能标志“冷”和“热”二者的重叠区域内。于是,进一步的处理就需要决定每个资格功能中的资格度(即输入温度是否在每个资格组(冷和热)中都适合)。
被叫做“模糊化”的步骤用来使输入与资格功能与实施模糊逻辑的系统中的资格功能联系起来。模糊化处理是把具体的数值加到如“温度是热的”这样的主观表述上。这些数值企图提供一个人类认知的良好近似,这种认知一般是不仅限于绝对真理的环境的。在模糊化步骤之后,执行“规则评价”步骤。在规则评价步骤的执行期间,一种被叫做“最小-最大”推理的技术用来为用户所确定的语言规则计算数字结果。规则评价步骤得出的结果叫做“模糊输出”且对变化的度来说可能是真的。因此,可能产生竞争的结果。模糊逻辑处理的最后步骤被叫做“消模糊化”。正如名称的意思,消模糊化处理是将所有的模糊输出联合成一个合成结果,此结果可以用于标准数据处理系统。关于模糊逻辑的更多的信息,可参考由詹姆斯·N·山伯格乔士(JamesM.Sibigtroth)所写的论文“在硬件中执行模糊专家规则”。该论文刊在1992年4月号A1EXPERT的第25至31页上。
典型地,模糊化步骤一直是用软件程序来实现的,此程序由外部设备或由数据处理器执行。这样的软件程序用数学方程式计算资格度,而这却需要很多很多的处理时间。所以,虽然软件程序提供了一个准确的结果,但是处理时间通常限制了系统实现的功能。另一个公共的软件解决办法是实行一个“查找表”程序,在此程序中,贮存在存储器中的数据表被存取,其值与具体输入值相一致。尽管查找表程序比数学计算来得快些,但它需要大量的专用存储区,实现起来很昂贵。实现模糊化步骤的硬件解决办法提供了更快的结果。然而,硬件解决办法通常需要大量的专用电路,这些电路是不可改变的。尽管硬件解决办法对模糊化步骤是典型地比软件实现来得快,但硬件办法需要大量专用电路区且在数据处理系统中实现常常是太昂贵了。
因此,为快速实行模糊化步骤,需要有一种没有昂贵的硬件需求的电路和方法。将速度与硬件解决方法典型地结合起来是需要的,而不是通常地把存储器与软件解决办法结合起来。
本发明能满足上述的需要。因此,提供了一种形式的、用于在数据处理系统中实行模糊逻辑运算的电路和方法,该模糊逻辑运算在一组预定的资格组中决定输入点的资格,该预定的资格组是由多数边界值来确定的。该方法包括为在数据处理系统中开始执行模糊逻辑运算而接收资格评价指令的步骤。对资格评价指令解码以提供多个控制信号。多个边界值中的第一个值被从输入值中减去以产生第一个增量(delta)值。与此同时,输入值被从多个边界值的第二个值中减去以产生第二个增量值。第一个增量值与多个边界值的第三个值相乘以产生第一个结果。与此同时,第二个增量值与多数边界值的第四个值相乘以产生第二个结果。当第一个增量值或第二个增量值有一个值小于零的时候,提供一个资格度信号以表示输入点不包含在该预定的资格组中。如果第一个增量值或第二个增量值都不小于零,则资格度信号等于第一个结果、第二个结果或者多个边界值的第五个值中最小的值。
这些特征和其它的特征以及优点将从下文结合图示的详尽描述中得以更明白的理解。
在附图中

图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。不过,其它的实施可以允许模糊逻辑系统的用户选择一个与具体系统的性能相一致的饱和值。
被叫做记忆标记“MEN”的本发明的指令,使数据处理系统在多个资格组中的一组中完成一系列决定系统输入值的资格度的步骤。每个资格组的特征均在于多个边界值(点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经外部地址总线35提供。同样地,多个数据值经外部数据总线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)和低端09位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高和H低信号。
操作数分配逻辑电路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,94,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是一样的,因此,也就有一样的结构。
标记为“CO”的信号被提供给低进位超前逻辑104的第一输入端和相加器100的第三输入端。相加器100输出一个标记为“SO”的“和”信号。另外,相加器100把标记为“PO”的传播信号和标记为“GO”的发生信号提供给低进位超前逻辑电路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值是把点2值从系统输入寄存器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。另外分别贮存在闩锁器136和130中的ZP2和ZP4值被清除。
接着,增量1值和增量2值的每一个值的高四位被测试,以决定哪一值等于十六进制值的$0。如果增量1值的高四位等于$,那么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标志被认定。由或非门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值都不是$OF或小于$OF,且现行的输入在资格组之内。
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值都不是$OF或小于$OF,且现行的输入在资格组内。
但是,如果系统输入值是在现正被检验的资格组内,那么Nmem信号被“取消”,且Z1和Z3标志信号被提供给操作数分配逻辑50和结果选择逻辑46,以决定资格组中的资格度。
通过获得定义资格组的梯形中饱和点的值、增量1和斜率1的乘积值或增量2和斜率2的乘积值三者中的最小值,来决定资格组中的资格度。在图2所示的例子中,饱和点的十六进制值是$FF,译成小数值就成0.996,为了计算增量1和斜率1的乘积以及增量2和斜率2的乘积,开发了一种方法以确保快速相乘运算。正如现有技术中众所周知的,当乘数小于被乘数时,相乘运算完成得比较快。如果,正如本例,资格组的饱和值为$FF,则数学分析表明,组成乘积的增量项或斜率项中至少有一项必须小于等于$OF。但有一种情况例外,那就是现行的系统输入值在资格组之外或者在资格组的饱和区内。
藉助于测试增量值和斜率值的四位高阶位,就可以把小于等于十六进制值$OF的第一项用作乘数。因此,用于完成相乘运算所需的时间就缩短了。如果增量1值和斜率1值都比十六进制值$OF大,那么J高信号就强制S高饱和标志被认定。同样,如果增量2值和斜率2值都比十六进制值$OF大,那么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的第二输入端。
标记为“CO”的进位信号被提供给相加器100的第三输入端。CO信号通常由ALU56之外的源来提供,以响应正在执行的操作和乘数2信号的值。根据三个输入信号的每一个,相加器100提供三个输出信号。第一个输出信号是SO信号,它等于(1)SO=a0≈bo≈c0。
第二个输出信号是发生信号GO,它等于(2)GO=a0·b0,第三个输出信号是传播信号PO,它等于(3)PO=a0+b0。
响应于GO和PO信号,低进位超前逻辑电路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有能力提供快而有效的八位操作的结果。
另外,在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位结果。在乘或减运算的情况中,在分离模式操作期间,高端和低端都将产生一个十六位的结果。
虽然在这里描述了本发明的原理,但本领域技术人员应清楚地明白,这里的描述仅是以举例的方法来进行的,不能作为对本发明范围的限制。因此,借助所附的权利要求书,本发明应覆盖属于其真正的精神和范围之内的所有变形。
权利要求
1.用于在数据处理系统中进行模糊逻辑运行的一种方法,该模糊逻辑运算决定了由多个边界值限定的预定资格组中输入点的资格,该方法的特征在于以下步骤为开始在数据处理系统中执行模糊逻辑运算,接收一个资格评价指令;对资格评价指令进行译码以提供多个控制信号;从输入值中减去多边界值中的第一个值以产生第一个增量值,并同时从多上边界值中的第二个值中减去该输入值以产生第二个增量值;将第一个增量值与多个边界值中的第三个值相乘以提供第一个结果,并同时将第二个增量值与多个边界值中的第四个值相乘以提供第二个结果;提供一个资格度信号,该资格度信号表示当第一个增量值或者第二个增量值小于零时,输入点不包含在预定的资格组中,如果第一个增量值和第二个增量值都不小于零,那么资格度信号等于第一个结果、第二个结果或者多个边界值中的第五个值这三者中的最小值。
2.权利要求1的方法,其特征在于下列步骤产生一个第一标志信号以表示第一增量值的一个预定部分的值;产生一个第二标志信号以表示第二增量值的一个预定部分的值。
3.权利要求2的方法,其特征在于下列步骤当第一标志信号是一个第一预定逻辑电平时,提供第一增量值作为相乘运算中的第一乘数,多个边界值的第三个值被提供作为第一被乘数;当第一标志信号是一个第二预定逻辑电平时,提供多个边界值的第三个值作为相乘运算中的第一乘数,第一增量值被提供作为第一被乘数;当第二标志信号是一个第一预定逻辑电平时,提供第二增量值作为相乘运算中第二乘数,多个边界值中的第四个值被提供作为第二被乘数;当第二标志信号是一个第二预定逻辑电平时,提供多个边界值中的第四个值作为相乘运算中的第二乘数,第二增量值被提供作为第二被乘数。
4.权利要求1的方法,其中多个边界值的第五个值是一个饱和值,该饱和值是资格组中的最大值。
5.一种用于进行模糊逻辑运算的数据处理系统,该模糊逻辑运算决定了在由多个边界值定义的预定资格组中输入点的资格,该数据处理系统的特征在于为在数据处理系统中开始执行模糊逻辑运算而接收一个资格评价指令的输入装置,输入装置也接收输入点;对资格评价指令进行译码的指令译码装置,指令译码装置连接到为接收该资格评价指令的输入装置上;为贮存和提供多个边界值的存储器装置;为在执行模糊逻辑运算期间贮存多数增量值的寄存器;一个与存储器装置相耦合的算术逻辑电路,用于有选择地接收多个边界值中的每一个,该算术逻辑电路耦合到输入装置以接收输入点,算术逻辑电路耦合到指令译码装置以接收部分多数控制信号,该算术逻辑电路耦合到寄存器上以接收部分多个增量值,该算术逻辑电路产生第一和第二增量值或者产生第一和第二乘积;一个结果选择器,其第一输入端与算术逻辑电路相连以接收第一增量值,其第二输入端与算术逻辑电路相连以接收第二增量值,其第三输入端与算术逻辑电路相连以接收第一乘积,其第四输入端与算术逻辑电路相连以接收第二乘积,其第五输入端接收多个边界值中的第五个值,该结果选择器提供一个资格度信号,该资格度信号指明当第一增量值或者第二增量值有一个小于零时输入点就不包含在预定的资格组中,如果第一增量值或第二增量值都不小于零则资格度信号等于第一结果、第二结果或多个边界值中的第五个值这三个值中的最小值。
6.权利要求5的数据处理系统,其进一步的特征在于标志产生电路,该标志产生电路与相加器电路相耦合以接收第一增量值和第二增量值,标志产生电路产生第一标志信号以表明第一增量值的预定部分的值并产生第二标志信号以表明第二增量值的预定部分的值。
7.权利要求5的数据处理系统,其中多个控制信号的第一个信号表明第一增量值和第二增量值是同时被产生的。
8.权利要求5的数据处理系统,其中多个控制信号的第二个信号表明第一乘积和第二乘积是同时被产生的。
9.一个用于执行算术运算的数据处理系统,其特征在于用于接收多数据值的输入装置;用于产生多个控制信号以响应多数数据值的控制装置,该控制装置与输入装置相耦合;其特征在于算术逻辑单元包括用于接收多个数据值和多个控制信号的输入装置;第一组多个相加器,其每一个具有用于接收多个数据值的第一个值的第一部分的第一输入端和用于接收多个数据值的第二个值的第一部分的第二输入端,第一组多个相加器的每一个都提供一个和信号和一个进位信号,第一组多个相加器的每一个相加器有用于接收一个起始进位信号的第三输入端,第一组多个相加器中的其他各个相加器均有用于接收由前一个相加器所产生的进位信号的第三输入端;第二组多个相加器,第二组相加器的每一个均有用于接收多数数据值的第一个值的第二部分的第一输入端和用于接收多数数据值的第二个值的第二部分的第二输入端,第二组多个相加器的每一个均提供一个和信号和一个进位信号,第二组多个相加器中的第一个相加器有用于接收一个进位入信号的第三输入端,第二组多个相加器中的每个其余的相加器均有用接收由前一个相加器所产生的进位信号的第三输入端;一个缓冲器,它有与控制装置相耦合以接收多个控制信号中的第一个信号的第一输入端和用于接收由第一组多个相加器的最后一个相加器所产生的进位信号的第二输入端,缓冲器提供由第一组多个相加器的最后一个相加器所产生的进位信号或一个作为信号中的进位的预定数据值给第二多数相加器的第一个相加器以响应多数控制信号的第一个信号。
10.权利要求9的数据处理系统,其中多个控制信号中的第一个信号表明算术逻辑单元正运行在分离操作模式,在此模式中两个算术运算可以同时完成。
全文摘要
本发明为在模糊逻辑运算中决定资格组中输入的资格度的电路和方法。资格度由单一的“MEM”软件指令来计算。MEM指令决定了系统输入的资格度是0还是饱和电平或是介乎二者之间的某个值。操作数分配电路和ALU使电路能很快地决定资格度。分配电路根据待相乘的值中有效位的数目决定相乘运算的乘数。如果乘数小于被乘数,那么可以以较短的时间完成相乘操作。另外,ALU运行在分离操作模式下,能同时完成两个8位的减操作和乘操作。
文档编号G06F7/00GK1080411SQ9310669
公开日1994年1月5日 申请日期1993年6月5日 优先权日1992年6月17日
发明者J·格里格·瓦尔特, 詹姆斯·M·西比格特罗斯, 詹姆斯·L·布罗斯吉尼 申请人:莫托罗拉公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1