專利名稱:用于模糊邏輯規(guī)則計(jì)值的電路和方法
技術(shù)領(lǐng)域:
本發(fā)明廣泛涉及數(shù)據(jù)處理系統(tǒng),尤其是涉及了數(shù)據(jù)處理系統(tǒng)中模糊邏輯操作的執(zhí)行。
數(shù)據(jù)處理器已發(fā)展成二進(jìn)制機(jī)器的操作方式,其輸入和輸出解釋為一或零,而任何其他可能性都是不存在的。雖然在許多情況下這種操作方式是有效的,但有時(shí)答案并不是簡單的“Yes”(“是”)或No(“否”),而是介于兩者之間。于是發(fā)展了稱為“模糊邏輯”的一種概念,使得基于二進(jìn)制邏輯的數(shù)據(jù)處理器能夠提供介于“Yes”和No”之間的答案。
模糊邏輯是一種邏輯系統(tǒng),該邏輯系統(tǒng)具有帶模糊邊界的隸屬函數(shù)。隸屬函數(shù)將諸如“氣溫是暖和的”這樣主觀表述翻譯成典型的數(shù)據(jù)處理器可識(shí)別的一個(gè)數(shù)值。如象“Warm”(“溫暖的”)這樣一個(gè)標(biāo)號(hào)用來標(biāo)識(shí)輸入數(shù)值的一個(gè)區(qū)域,該區(qū)域的邊界不是一些據(jù)以判定標(biāo)號(hào)在一側(cè)為真而在另一側(cè)則為假的點(diǎn)。在執(zhí)行模糊邏輯的系統(tǒng)中,隸屬函數(shù)的邊界是逐漸變化的并可能與相鄰的隸屬集合的邊界重疊。因而通常要向輸入數(shù)值指定一個(gè)隸屬度。例如,如果氣溫的范圍規(guī)定為隸屬函數(shù),則輸入的溫度可能會(huì)落到同時(shí)標(biāo)有“冷”和“暖”兩個(gè)函數(shù)的重疊區(qū)域中。這時(shí)就需要進(jìn)一步的處理以斷定在每一隸屬函數(shù)中的隸屬度(即當(dāng)前的溫度適合于冷和熱這兩個(gè)隸屬集的每一個(gè)集的程度)。
稱為“模糊化”的一個(gè)步驟用來將輸入與執(zhí)行模糊邏輯的一個(gè)系統(tǒng)之中的一個(gè)隸屬函數(shù)相關(guān)聯(lián)。模糊化過程將具體的數(shù)值附加在諸如“氣溫是溫暖的”這樣的主觀表述上。這些數(shù)值旨在實(shí)現(xiàn)人的感覺一種良好的近似表達(dá)。
模糊化步驟之后,要執(zhí)行的是所謂規(guī)則計(jì)值步驟。在規(guī)則計(jì)值步驟之中,對(duì)于與模糊輸入數(shù)值有關(guān)的規(guī)則表述進(jìn)行計(jì)值以得到模糊輸出。例如,設(shè)待計(jì)值的一個(gè)規(guī)則可表述為如果(氣溫是溫暖的)而且(氣壓是高的),則(風(fēng)扇的速度是中等)。
此規(guī)則中,“氣溫是溫暖的”以及“氣壓是高的”這兩個(gè)前提必須進(jìn)行計(jì)值以判定結(jié)論“風(fēng)扇速度是中等”的規(guī)則強(qiáng)度。在規(guī)則計(jì)值步驟中,一個(gè)前提為真的程度影響著該規(guī)則為真的程度。前提為真的最小值用作規(guī)則的結(jié)論的規(guī)則強(qiáng)度。因而,如果有一個(gè)以上的規(guī)則要進(jìn)行計(jì)值,并且要對(duì)風(fēng)扇給出一個(gè)以上的指令,則每一規(guī)則的結(jié)論的規(guī)則強(qiáng)度共同用于確定風(fēng)扇的動(dòng)作。例如,上述的規(guī)則可計(jì)值為具有規(guī)則強(qiáng)度X。而且,將風(fēng)扇轉(zhuǎn)接到高速的第二個(gè)規(guī)則計(jì)值為具有規(guī)則強(qiáng)度Y,其中Y大于X。模糊邏輯操作的最后一步是響應(yīng)由規(guī)則的計(jì)值步驟提供的模糊輸出提供一個(gè)適當(dāng)?shù)膭?dòng)作。
模糊邏輯過程中的最后一步稱為“非模糊化”。這一步驟要將規(guī)則計(jì)值步驟所得的相互競(jìng)爭的結(jié)果進(jìn)行分解辨別而得出一個(gè)單一的動(dòng)作。非模糊化過程即是綜合所有的模糊輸出成為一個(gè)可用于標(biāo)準(zhǔn)數(shù)據(jù)處理系統(tǒng)的組合結(jié)果。有關(guān)模糊邏輯更多的信息請(qǐng)參閱由JamesM.Sibigtroth所撰寫的標(biāo)題為“在硬件中實(shí)現(xiàn)模糊專家規(guī)則”的文章。該文發(fā)表在AIEXPERT(“人工智能專家”)1992年4月號(hào)第25頁至31頁。
總的說來,規(guī)則是由一系列前提(前件)后跟一個(gè)或多個(gè)動(dòng)作(結(jié)論)構(gòu)成的。每一前提對(duì)應(yīng)一個(gè)模糊輸入而每一動(dòng)作對(duì)應(yīng)一個(gè)模糊輸出。在規(guī)則的計(jì)值步驟的硬件實(shí)現(xiàn)中,專用的連接方法和電路用于建立模糊輸入與模糊輸出之間的關(guān)系。這種方法常需要專用的存儲(chǔ)器電路技術(shù)而不夠靈活。在規(guī)則計(jì)值步驟的軟件實(shí)現(xiàn)中,指令程序用于計(jì)值步驟。這種軟件方法通常比硬件方法速度慢并且需要相當(dāng)大的程序存儲(chǔ)量。在數(shù)據(jù)必須盡快進(jìn)行計(jì)量,傳送和控制的工業(yè)中,快速執(zhí)行的次數(shù)是很重要的。因而對(duì)于某些應(yīng)用而言,軟件不是一個(gè)有生命力的解決問題的方法。
于是需要一種無需擴(kuò)展的硬件即可快速執(zhí)行規(guī)則計(jì)值步驟的電路或方法。所需的是與通常硬件解決方法相關(guān)的速度而又無需平時(shí)與這種方法相聯(lián)系的專用線路區(qū)域。
本發(fā)明滿足了以上提到的需要。這里以一種形式提供了操作一個(gè)數(shù)字式數(shù)據(jù)處理器執(zhí)行模糊規(guī)則的計(jì)值操作的方法。該方法包括的步驟是1)從一個(gè)存儲(chǔ)單元中檢索一個(gè)地址值。
2)將該地址值與第一邊界值進(jìn)行比較,若該地址值與第一邊界值符合,則終止模糊規(guī)則計(jì)值操作。
3)將該地址值與第二邊界值進(jìn)行比較,若該地址值與第二邊界值符合,則改變第一標(biāo)記信號(hào)狀態(tài)。
4)如果地址值與第一及第二邊界值都不符合并且第一標(biāo)記信號(hào)在第一狀態(tài),則應(yīng)用從存儲(chǔ)單元檢索的隸屬函數(shù)值執(zhí)行第一算術(shù)運(yùn)算。
5)如果地址值與第一和第二邊界值都不符合并且第一標(biāo)記信號(hào)在第二狀態(tài),則應(yīng)用由地址值所指定的存儲(chǔ)單元中檢索的結(jié)論值執(zhí)行第二算術(shù)運(yùn)算并且有選擇地將此第二算術(shù)運(yùn)算的結(jié)果寫入由該地址值所規(guī)定的存儲(chǔ)單元中。
6)重復(fù)步驟1)到5)。
由以下參照附圖所作的詳細(xì)描述可清楚地理解這些特點(diǎn)和其他特點(diǎn)及優(yōu)點(diǎn)。重要的是應(yīng)注意附圖并不意味著代表本發(fā)明的唯一的形式。
圖1.以圖形的形式說明了用于描述模糊邏輯一些常用概念和基本術(shù)語;
圖2.以框圖的形式說明了根據(jù)本發(fā)明的數(shù)據(jù)處理系統(tǒng);
圖3.以框圖的形式說明了圖2的一個(gè)執(zhí)行單元;
圖4.以邏輯電路的形式說明了圖3的一個(gè)寄存器變換邏輯電路;
圖5.以存儲(chǔ)變換的形式說明了圖2的一個(gè)內(nèi)部存儲(chǔ)器中待計(jì)值的一個(gè)規(guī)則數(shù)組;以及圖6.以流程圖的形式說明了根據(jù)這里所述的發(fā)明執(zhí)行REV(規(guī)則計(jì)值)指令過程中所要執(zhí)行的函數(shù)的一個(gè)流程。
較佳實(shí)施例的詳述。
本發(fā)明提供了用于數(shù)據(jù)處理系統(tǒng)的在模糊邏輯操作中快速執(zhí)行規(guī)則計(jì)值步驟的電路和方法,該電路和方法具有最小的電路量。該規(guī)則計(jì)值步驟以單指令編碼,這指令在數(shù)據(jù)處理系統(tǒng)中無須額外附加的電路即可有效地被執(zhí)行。因而本發(fā)明是提供了一種指令,該指令可使得數(shù)據(jù)處理系統(tǒng)的用戶無需冗長的軟件程序所耗的時(shí)間而可以快速執(zhí)行規(guī)則計(jì)值步驟。
本發(fā)明的這一指令用便于記憶的符號(hào)“REV”表示,該指令將引發(fā)數(shù)據(jù)處理系統(tǒng)執(zhí)行一系列有關(guān)從存儲(chǔ)器中檢索操作數(shù)和應(yīng)用這些操作數(shù)執(zhí)行算術(shù)運(yùn)算的步驟。如果待計(jì)值的規(guī)則的前提及該規(guī)則的結(jié)論的隸屬函數(shù)值在執(zhí)行本發(fā)明的REV指令之前已適當(dāng)?shù)卮鎯?chǔ)到存儲(chǔ)器之中,則REV指令執(zhí)行的結(jié)果將是該規(guī)則的固有計(jì)值。假定前提和結(jié)論以一種特別的格式存儲(chǔ)到存儲(chǔ)器之中,并通過對(duì)現(xiàn)存的可執(zhí)行該指令的硬件的細(xì)心籌劃的應(yīng)用,本發(fā)明可使得在一般通用的數(shù)據(jù)處理系統(tǒng)中補(bǔ)充很少的硬件即可對(duì)模糊邏輯規(guī)則作有效的計(jì)值。例如,數(shù)據(jù)處理器中在執(zhí)行帶符號(hào)的運(yùn)算過程之中所使用的條件碼寄存器的溢出或V位(空位)在本發(fā)明中用作與來自存儲(chǔ)器的操作數(shù)的處理相聯(lián)系的標(biāo)記。
在本發(fā)明的實(shí)現(xiàn)方法的陳述中將使用“取正”及“取反”這樣的術(shù)語以及其各種語法形式,以便避免在處理“有效高位”及“有效低位”混合邏輯信號(hào)時(shí)的混淆?!叭≌庇靡员硎疽粋€(gè)邏輯信號(hào)或寄存器的位呈活動(dòng)態(tài)或邏輯真狀態(tài)。“取反”用以表示一個(gè)邏輯信號(hào)或寄存器位呈非活動(dòng)態(tài)或邏輯假狀態(tài)。而且,一個(gè)十六進(jìn)制數(shù)值可能由一個(gè)置于數(shù)值前的“$”符號(hào)標(biāo)出。
圖1提供了一幅圖,表示模糊邏輯的一些基本概念和術(shù)語。圖1所表示的模糊邏輯系統(tǒng)中,“系統(tǒng)的輸入”是華氏氣溫。提供了四個(gè)“隸屬函數(shù)”以給出氣溫范圍的標(biāo)記。例如,從0度到35度的一個(gè)氣溫標(biāo)以“寒冷”。類似地,由25度到60度的溫度標(biāo)以“涼爽”。注意每一隸屬集的邊界是與鄰接的隸屬集的邊界重疊的。因而,一個(gè)溫度可能出現(xiàn)在一個(gè)以上的隸屬集之中。例如系統(tǒng)輸如假設(shè)指示為58度。參見圖1,注意58度既在涼爽隸屬集的邊界中又在溫暖隸屬集的邊界之中。但是可以求得在每一隸屬集中的隸屬度。系統(tǒng)的輸入對(duì)于涼爽隸屬集而言有一個(gè)其十六進(jìn)制值為$33的隸屬度,而對(duì)于溫暖隸屬集則有一個(gè)十六進(jìn)制值為$CC的隸屬度。假如系統(tǒng)輸入已指示溫度為70度,則該溫度在溫暖隸屬集中就會(huì)具有十六進(jìn)制值$FF的隸屬度。類似地,70度的溫度在炎熱隸屬集中具有十六進(jìn)制數(shù)值的$00的隸屬度。在圖1所描述的模糊邏輯系統(tǒng)中隸屬度的變化范圍是從十六進(jìn)制值$00到$FF,這對(duì)應(yīng)于十進(jìn)制小數(shù)從0.00至0.996。本專業(yè)工作者知道一個(gè)兩位的十六進(jìn)制值可由單獨(dú)一個(gè)八位二進(jìn)制字節(jié)來表示。
上述操作的指令和方法的一種實(shí)現(xiàn)可以在一個(gè)修改了的MC68HC11微控制器中進(jìn)行。MC68HC11是一個(gè)8位微控制器。它包括十六位的地址和存儲(chǔ)寄存器,可由Motorola,Inc.ofAustin,Jexas(莫特羅拉公司,奧斯汀,得克薩斯)購得。圖2更詳細(xì)說明出該種實(shí)現(xiàn)方法。圖2描繪了可實(shí)現(xiàn)規(guī)則計(jì)值指令的數(shù)據(jù)處理系統(tǒng)10。數(shù)據(jù)處理系統(tǒng)10一般包括一個(gè)中央處理器(CPU)12,一個(gè)振蕩器24,電源電路26,定時(shí)電路28,一個(gè)外部總線接口30和一個(gè)內(nèi)部存儲(chǔ)器32。CPU12一般具有一個(gè)執(zhí)行單元14,一個(gè)總線控制邏輯電路16,一個(gè)指令解碼邏輯電路18,一個(gè)控制單元20和一個(gè)定序器22。
在操作過程中,“Osc1”信號(hào)由諸如晶體這類外部信號(hào)源供給振蕩器24。該晶體連接在信號(hào)Osc1與Osc2之間而使得該晶體能夠振蕩。Osc1向數(shù)據(jù)處理系統(tǒng)10的其余部分提供“時(shí)鐘”信號(hào)。晶體振蕩器的操作在數(shù)據(jù)處理技術(shù)中為人們所熟知并且對(duì)于本技術(shù)領(lǐng)域一般工作者是顯然的事情。
電源電路26從一個(gè)外部電源接收“Vdd”及Vss信號(hào)。Vdd信號(hào)提供正5伏特的電壓而Vss信號(hào)提供一個(gè)參考的或稱基準(zhǔn)的電壓。Vdd與Vss信號(hào)供給數(shù)據(jù)處理系統(tǒng)10的其余每一個(gè)部件。這些信號(hào)的路由選擇在數(shù)據(jù)處理技術(shù)中是眾所周知的,因而對(duì)于一般的技術(shù)人員來說應(yīng)該是顯然的事情。
定時(shí)電路28接收時(shí)鐘信號(hào)并通過定時(shí)控制總線38順序地將適當(dāng)?shù)亩〞r(shí)信號(hào)提供給以下每一部件CPU12,外部總線接口30以及內(nèi)部存儲(chǔ)器32。
多地址值從外部總線接口30提供給外部地址總線35。類似地,多數(shù)據(jù)值通信是經(jīng)由外部數(shù)據(jù)總線33通過外部總線接口30進(jìn)行的。外部總線接口30控制著外部用戶與數(shù)據(jù)處理系統(tǒng)10之間的地址與數(shù)據(jù)值的接收和傳輸。外部總線接口30分別通過內(nèi)部地址總線36與內(nèi)部數(shù)據(jù)總線30使得多地址和數(shù)據(jù)值與數(shù)據(jù)處理系統(tǒng)10的其余部分進(jìn)行通信。
內(nèi)部存儲(chǔ)器32的作用在于存儲(chǔ)供數(shù)據(jù)處理系統(tǒng)10的適當(dāng)操作所需要的信息。而且如果在用戶的程序中有特別的規(guī)定,則其他的數(shù)據(jù)值也能經(jīng)由內(nèi)部地址總線36和內(nèi)部數(shù)據(jù)總線34存儲(chǔ)在這里。
CPU12在數(shù)據(jù)處理系統(tǒng)10操作過程中執(zhí)行每一條所要求的指令。內(nèi)部地址總線36與內(nèi)部數(shù)據(jù)部線34在執(zhí)行單元14與數(shù)據(jù)處理系統(tǒng)10的其余部分之間進(jìn)行信息的通信。總線控制邏輯電路16取指令和操作數(shù)。然后每一指令由指令解碼邏輯電路18進(jìn)行解碼并提供給控制單元20和定序器22??刂茊卧?0和定序器22保持每一指令執(zhí)行的順序使得數(shù)據(jù)處理系統(tǒng)10的計(jì)算能力得以最有效的利用。控制單元20包含有一個(gè)微只讀存儲(chǔ)器(未表示出),該只讀存儲(chǔ)器通過一微只讀存儲(chǔ)器控制總線65向下列每一部件提供多種控制信息執(zhí)行單元14,總線控制邏輯16和指令解碼邏輯18。此多種控制信息對(duì)于REV指令的正確執(zhí)行是必要的。
執(zhí)行單元14在圖3中更詳細(xì)地表示出來。執(zhí)行單元14一般包括一個(gè)數(shù)據(jù)緩沖器40,第一選擇器42,第二選擇器44,寄存器交換邏輯電路46,條件碼邏輯電路47,A-輸入控制電路48,A-輸入多路傳送器50,ALU(算術(shù)邏輯單元,下同)52,B-輸入控制電路54,B-輸入多路傳送器56,累加器58,條件碼寄存器60以及比較器72。除累加器58和條件碼寄存器58和條件碼寄存器60之外,在執(zhí)行單元14中可能還裝有其他存儲(chǔ)寄存器。例如,也可能包括一個(gè)下標(biāo)寄存器或第二累加器。裝設(shè)和使用這類存儲(chǔ)寄存器在本技術(shù)領(lǐng)域中是盡人皆知的,故對(duì)于本技術(shù)專業(yè)的一般人員是顯然的事情。
外部信息總線41向數(shù)據(jù)緩沖器40提供地址和數(shù)據(jù)信息。外部信息總線41分別從內(nèi)部地址總線36和內(nèi)部數(shù)據(jù)總線34接收地址和數(shù)據(jù)信息。數(shù)據(jù)緩沖器40在選擇器42和44分別允許信息傳輸時(shí)通過信息總線A66和信息總線B64向執(zhí)行單元14的其余部分提供經(jīng)由外部信息總線40傳輸?shù)臄?shù)值。雖然這里并未詳細(xì)表示出,但其中的信息總線A66與信息總線B64都是十六位寬的并分為高側(cè)(15位到8位)與低側(cè)(7位到0位)。又?jǐn)?shù)據(jù)緩沖器40向比較器72提供地址信息。
累加器58的第一與第二輸入分別是與信息總線A66與信息總線B64雙向耦合的。任何諸如累加器與下標(biāo)寄存器之類的附加寄存器都將類似地與信息總線A66與信息總線B64耦合。
多控制信號(hào)經(jīng)由微-只讀存儲(chǔ)器控制總線65同時(shí)向A-輸入控制邏輯48和B-輸入控制邏輯54提供。微-只讀存儲(chǔ)器控制總線65響應(yīng)由控制單元20中的微-只讀存儲(chǔ)器(未表示出)提供的信息提供多控制信號(hào)。
A-輸入控制48將“控制A”信號(hào)提供給A-輸入多路傳送器50的控制輸入。信息總線A66是連接到A-輸入多路傳送器50的數(shù)據(jù)輸入。A-輸入多路傳送器50將標(biāo)有“A-輸入低側(cè)”的第一個(gè)十位輸出提供給ALU56的第一輸入,又把標(biāo)有“A-輸入高側(cè)”的第二個(gè)十位輸出提供給ALU56的第二輸入。B-輸入控制54向B-輸入多路傳送器56的控制輸入提供“控制B”信號(hào)。信息總線B64是接連到B-輸入多路傳送器56的數(shù)據(jù)輸入的。B-輸入多路傳送器56把標(biāo)有“B-輸入低側(cè)”的第一個(gè)十位輸出提供給ALU56的第三輸入,又把標(biāo)有“B-輸入高側(cè)”的第二個(gè)十位輸出提供給ALU56的第四輸入。
ALU52處理每一輸入而提供多結(jié)果,這些結(jié)果經(jīng)由結(jié)果總線120傳送。結(jié)果總線120將ALU52所提供的結(jié)果提供給寄存器交換邏輯46及條件碼邏輯47。而且,結(jié)果總線120還將該多結(jié)果提供給信息總線B64。
條件碼邏輯47也耦合到比較器72以便接收觸發(fā)翻轉(zhuǎn)信號(hào)。條件碼邏輯47同條件碼寄存器60耦合以便提供“條件碼”信號(hào)。
條件碼寄存器60向寄存器交換邏輯46的第二控制輸入提供VCCR(條件碼寄存器空位)信號(hào)。又定時(shí)控制信號(hào)提供給寄存器交換邏輯46的第一控制輸入。該定時(shí)控制信號(hào)是經(jīng)由定時(shí)控制總線38提供的。寄存器交換邏輯46提供分別標(biāo)有“Enable A”與Enable B”(允許A與允許B,下同)的第一與第二輸出。該允許A信號(hào)提供給選擇器42的第一控制輸入。信息總線A66與選擇器42雙向耦合。選擇器42的一個(gè)輸出與數(shù)據(jù)緩沖器40耦合以便作多被選信號(hào)的通信。類似地,該允許B信號(hào)是提供給選擇器44的第一輸入的。信息總線B64與選擇器44雙向耦合。選擇器44的一個(gè)輸出是耦合于數(shù)據(jù)緩沖器40的以便進(jìn)行多被選信號(hào)的通信。
寄存器交換邏輯46在圖4中加以了詳細(xì)說明。一般而言,寄存器交換邏輯46包含一個(gè)AND(與)門62,一個(gè)AND(與)門70以及一個(gè)反相器68。VCCR信號(hào)向AND(與)門62提供了第一輸入并向反向器68提供了一個(gè)輸入。反向器68的一個(gè)輸出向AND(與)門70提供了第一輸入。定時(shí)控制信號(hào)同時(shí)向AND(與)門62及AND(與)門70提供第二輸入。結(jié)果總線120將標(biāo)有“N”的信號(hào)從ALU52同時(shí)向與門62及與門70的第三輸入提供。與門62的一個(gè)輸出提供允許A信號(hào),與門70的輸出提供允許B信號(hào)。
在執(zhí)行模糊邏輯操作過程中,數(shù)據(jù)處理系統(tǒng)10的用戶可應(yīng)用帶有助記符REV(RuleEvaluatron,規(guī)則記值)的指令執(zhí)行模糊輸入上規(guī)則計(jì)值步驟。如前所述,模糊輸入是作為模糊化步驟的結(jié)果而提供的,在模糊化步驟中系統(tǒng)的輸入信號(hào)是向諸已定義的每一隸屬集合指定一個(gè)隸屬度。這里所述的本發(fā)明的實(shí)現(xiàn)方式中,指定給模糊輸入的每一個(gè)隸屬度在執(zhí)行REV指令之前是存儲(chǔ)在數(shù)據(jù)處理系統(tǒng)10的內(nèi)部存儲(chǔ)器32中預(yù)定的存儲(chǔ)單元之中。向多個(gè)模糊輸入指定各個(gè)隸屬度的方法在標(biāo)題為“用于模糊邏輯操作中確定集合中的隸屬的電路和方法”的用以對(duì)照的共同未決專利申請(qǐng)中有更詳細(xì)的透露,該專利申請(qǐng)者為J.GregViot,JamesM.Sibigtroth,和JamesL.Broseghini。
這里所述的例子中,假定在第一和第二系統(tǒng)輸入的模糊化過程中使用兩組隸屬集合。該兩組的第一組規(guī)定氣溫度量,它們分為寒冷、涼爽、溫暖與炎熱隸屬集。當(dāng)模糊化時(shí),在涼爽隸屬集合中的第一系統(tǒng)輸入的隸屬度規(guī)定應(yīng)用標(biāo)記為Tcool的變量。類似地,寒冷,溫暖和炎熱隸屬集每一個(gè)的第一系統(tǒng)輸入的隸屬度規(guī)定各自的一個(gè)語言變量分別為Tcold,Twarm及Thot。
兩組隸屬集合的第二組規(guī)定氣壓的度量,它們分為低,中和高隸屬集。當(dāng)模糊化時(shí),在低,中和高隸屬集的第二系統(tǒng)輸入的隸屬度規(guī)定應(yīng)用分別標(biāo)以Plight,Pmedium及Pheavy的語言變量之一。在系統(tǒng)輸入已被模糊化之后,每一相應(yīng)的隸屬集合的第一和第二系統(tǒng)輸入的隸屬度就存儲(chǔ)在存儲(chǔ)器中預(yù)定的單元之中。而且規(guī)則必須進(jìn)行計(jì)值以便給出適當(dāng)?shù)膭?dòng)作。在本例中假設(shè)待計(jì)值的三個(gè)規(guī)則有如下的形式(1)規(guī)則1如果氣溫涼爽(Tcool)而且氣壓低(Plight),則(動(dòng)作1)與(動(dòng)作2);
(2)規(guī)則2如果氣溫是溫暖(Twarm)且氣壓是中等(Pmedium),則(動(dòng)作3);以及(3)規(guī)則3如果氣壓中等(Pmedinm),則(動(dòng)作3)。
注意每一規(guī)則具有的典型形式為(4)如果(模糊輸入1)與(模糊輸入2),則(動(dòng)作X)與(動(dòng)作Y)。
在規(guī)則計(jì)值過程中,規(guī)則的“if”(“如果”)部分首先被計(jì)值以便確定最小隸屬度值。規(guī)則的“如果”部分同時(shí)包括模糊輸入1值與模糊輸入2值。確定規(guī)則強(qiáng)度的一般方法是確定待計(jì)值的模糊輸入的最小隸屬度。但也有其他實(shí)現(xiàn)方法。例如,規(guī)則強(qiáng)度可按其每一前提的隸屬度之和來計(jì)算。類似地,隸屬度也可進(jìn)行乘積或以任一種計(jì)算類型進(jìn)行操作以確定規(guī)則強(qiáng)度。
在本實(shí)現(xiàn)方式中,規(guī)則強(qiáng)度僅僅只作為最弱成份的強(qiáng)度。該最弱隸屬度值用于確定該規(guī)則的“則”部分中的特定的每一動(dòng)作的規(guī)則強(qiáng)度值。在形式(4)所示的規(guī)則中,對(duì)應(yīng)于模糊輸入1與模糊輸入2的最小值的規(guī)則強(qiáng)度存儲(chǔ)在內(nèi)部儲(chǔ)器32中分別由動(dòng)作X與動(dòng)作Y的值的地址所指示第一與第二地址單元之中。對(duì)應(yīng)于預(yù)定的多動(dòng)作值之一的每一規(guī)則強(qiáng)度用于提供對(duì)應(yīng)于相應(yīng)動(dòng)作的模糊輸出值。然后這時(shí)模糊輸出值可以被非模糊化以便執(zhí)行由用戶特定的一個(gè)操作。雖然在形式(4)中只給出兩個(gè)模糊輸入值和兩個(gè)動(dòng)作值,但也可給出更多或更少的值。數(shù)據(jù)處理系統(tǒng)10的用戶確定規(guī)則的形式并可提供任何個(gè)數(shù)的待執(zhí)行的模糊輸入或動(dòng)作。
又當(dāng)對(duì)多于一個(gè)的規(guī)則進(jìn)行計(jì)值時(shí),則有可能對(duì)于一個(gè)動(dòng)作設(shè)定多個(gè)規(guī)則強(qiáng)度。在這種情形下具有較大值的規(guī)則強(qiáng)度應(yīng)被設(shè)定作該動(dòng)作。于是該動(dòng)作是設(shè)定為最大值規(guī)則強(qiáng)度。
這里所述的本發(fā)明的實(shí)現(xiàn)方式中,內(nèi)部儲(chǔ)器32一般用于存儲(chǔ)器存儲(chǔ)。然而也可應(yīng)用數(shù)據(jù)處理系統(tǒng)10的外部存儲(chǔ)器電路(未表示)。這類外部存儲(chǔ)器電路的實(shí)現(xiàn)方法與應(yīng)用在數(shù)據(jù)處理技術(shù)中是盡人皆知的并對(duì)于一般的技術(shù)人員是顯然的事情。在本實(shí)現(xiàn)方法中,每一橫糊輸入是以下述方式存儲(chǔ)在內(nèi)部存儲(chǔ)器32之中存儲(chǔ)器地址模糊輸入注釋$1000$00Tcold$1001$33Tcool$1002$CCTwarm$1003$00Thot$1004$00Plight$1005$FFPmedinm$1006$00Pheavy
數(shù)組1如數(shù)組1中所示,對(duì)于氣溫和氣壓這兩種系統(tǒng)輸入,對(duì)于每一系統(tǒng)輸入的每一隸屬集合提供了記作“FuzzyInput”(模糊輸入)一個(gè)隸屬度。如前述參考圖1所進(jìn)行的說明,第一系統(tǒng)輸入是華氏58度的一個(gè)氣溫。華氏58度被模糊化,以具有在寒冷和炎熱隸屬集中具有$00隸屬度,在涼爽隸屬集中具有$33的隸屬度,以及在溫暖隸屬集中具有$CC的隸屬度。如數(shù)組1中所示,Tcold與Thot變量值均為$00,這指示出第一系統(tǒng)輸入在這兩個(gè)隸屬集中都沒有。但第一系統(tǒng)輸入有Tcool值$33以及Twarm值$CC。因而第一輸入在涼爽屬集合中具有隸屬度$33以及在溫暖隸屬集合中有隸屬度$CC。
類似地,第二輸入被模糊化而指明在低和高氣壓隸屬集合中都有隸屬度$00。于是Plight與Pheavy變量的值都是$00,這指明第二輸入在這兩個(gè)隸屬集合中都不包含。但是該第二輸入在該中等的隸屬集中具有隸屬度$FF。于是變量Pmedinm具有的值為$FF。
象模糊輸入一樣,每一個(gè)待計(jì)值的規(guī)則(規(guī)則1至規(guī)則3)也是以一個(gè)規(guī)則數(shù)組存儲(chǔ)在內(nèi)部存儲(chǔ)器32之中。該規(guī)則數(shù)組表示在圖5之中。就每一規(guī)則來說,對(duì)于模糊輸入與模糊輸出都提供了地址單元。模糊輸入與模糊輸出的地址以圖5并參照諸如前面的數(shù)組1中所示數(shù)據(jù)值表的形式所存儲(chǔ)。象模糊輸入一樣,對(duì)應(yīng)于模糊輸出的數(shù)據(jù)值表也以一個(gè)數(shù)組的形式提供,該數(shù)組在此未詳細(xì)表示出。
規(guī)則數(shù)組的起始位于由數(shù)據(jù)處理系統(tǒng)10的用戶所預(yù)定的特定地址。此處所述及圖5中所說明的例子中,該預(yù)定地址等于$E000并在執(zhí)行REV指令之前存儲(chǔ)在下標(biāo)寄存器之中。用于規(guī)則1的第一個(gè)模糊輸入的地址位于十六進(jìn)位制地址$E000,即該規(guī)則庫的起始。在本例中,Tcool是規(guī)則1的第一模糊輸入并且$1001的地址存儲(chǔ)在該規(guī)則數(shù)組的地址$E000處。因?yàn)镻light值是規(guī)則1的第二模糊輸入,因而$1004的地址存儲(chǔ)在規(guī)則數(shù)組中地址$E002處。
為了將模糊輸入與模糊輸出區(qū)別開來,在規(guī)則數(shù)組中地址$E004處存儲(chǔ)了帶有值$FFFE的一個(gè)緩沖器。于是規(guī)則1的模糊輸出由一個(gè)帶有值$FFFE的緩沖器與規(guī)則2的模糊輸入?yún)^(qū)別開來。這一格式(其中任意多個(gè)模糊輸入與任意多個(gè)模糊輸出由帶有值$FFFE的一個(gè)緩沖器區(qū)別開來)將反復(fù)執(zhí)行直到多規(guī)則的每一模糊輸入與輸出存儲(chǔ)在存儲(chǔ)器中為止。在這點(diǎn)處一個(gè)特別的緩沖器值指示規(guī)則庫的終止。這里所述的例子中,規(guī)則庫的終止是由數(shù)值$FFFF表示的。雖然是相同的緩沖器值用于區(qū)分每一規(guī)則的模糊輸入與模糊輸出,但數(shù)據(jù)處理系統(tǒng)10的設(shè)計(jì)者可使用任意多個(gè)緩沖器。
通過對(duì)于每一規(guī)則如此地按排其第一模糊輸入與輸出的次序,每個(gè)規(guī)則就可通過應(yīng)用作為區(qū)分每一模糊輸入與輸出的段的指示符的緩沖地址來順序地加以計(jì)值。因而規(guī)則不必遵循帶有特定數(shù)量的模糊輸入與模糊輸入(動(dòng)作)的一種固定的格式。這使得提供模糊系統(tǒng)規(guī)則時(shí)有較大的靈活性。正發(fā)順規(guī)則1,規(guī)則2以及規(guī)則3〔(1),(2)和(3)〕中可看到的那樣,在本發(fā)明的這一實(shí)現(xiàn)方式中模糊輸入與相應(yīng)的動(dòng)作的數(shù)目在各規(guī)則之中可以是有變化的。
為開始執(zhí)行REV指令,規(guī)則的每一模糊輸入與輸出必須以圖5所示的具有預(yù)定格式的規(guī)則數(shù)組形式存儲(chǔ)到存儲(chǔ)器之中。而且該規(guī)則數(shù)組的起始地址必須存儲(chǔ)在執(zhí)行單元14中的下標(biāo)寄存器之中。并且累加器58必須在執(zhí)行REV指令之前以具有十六進(jìn)制值$FF初始化。另外,每一模糊輸出必須被指定一個(gè)十六進(jìn)制值$00。這時(shí)REV指令的執(zhí)行就可按照?qǐng)D6所示的流程圖進(jìn)行。該流程圖提供了REV指令執(zhí)行過程中所執(zhí)行的各功能的便覽。各個(gè)功能更為詳細(xì)的解釋將出現(xiàn)在以下執(zhí)行REV指令的一個(gè)例子的過程之中。
如圖6中所示,執(zhí)行REV指令的第一步是在REV指令解碼時(shí)執(zhí)行。存儲(chǔ)在下標(biāo)寄存器中,這里稱為“X”的地址定時(shí)用以讀取第一規(guī)則操作數(shù)。然后地址X遞增而指向下一地址單元(X+2)。
這時(shí)對(duì)該第一規(guī)則操作數(shù)的值進(jìn)行測(cè)試以判定該值是否等于十六進(jìn)制的$FFFE。如果該值等于十六進(jìn)制的$FFFE,則VCCR信號(hào)被觸發(fā)翻轉(zhuǎn)而指示一個(gè)緩沖器值被檢索。如果該VCCR信號(hào)在被觸發(fā)之后等于零,則規(guī)則的第一模糊輸入就要被計(jì)值而且累加器58應(yīng)該初始化為十六進(jìn)制值$FF。否則累加器58的值就不被修改。
如果第一規(guī)則操作數(shù)的值不等于$FFFE,則該值要進(jìn)行測(cè)試以判定它是否等于十六進(jìn)制的$FFFF。如果該值等于十六進(jìn)制的$FFFF,則已經(jīng)訪問到了該規(guī)則數(shù)組的終結(jié)而REV指令終止。
但是,如果第一規(guī)則操作數(shù)的值不等于$FFFF,則第一規(guī)則操作數(shù)的值就用于從內(nèi)部存儲(chǔ)器32中訪問一個(gè)模糊輸入或模糊輸出值。然后累加器58的內(nèi)容從模糊輸入或模糊輸出的值減去而提供一個(gè)帶有符號(hào)的結(jié)果。該結(jié)果的符號(hào)由N信號(hào)的值所指示。
如果N信號(hào)等于零,則累加器58與數(shù)據(jù)40的內(nèi)容不會(huì)被交換并且存儲(chǔ)在下標(biāo)寄存器中的地址訪問下一個(gè)規(guī)則操作數(shù)。但如果N信號(hào)等于一,則VCCR信號(hào)要被測(cè)試。
如果VCCR信號(hào)等于零,則累加器58的內(nèi)容就要被第一規(guī)則操作數(shù)所訪問的模糊輸入值為替代。從而,應(yīng)用一最小值函數(shù)以定義一個(gè)指定為當(dāng)前正被計(jì)值的規(guī)則的模糊輸出的規(guī)則強(qiáng)度。然后,存儲(chǔ)在下標(biāo)寄存器中的地址用于訪問下一個(gè)規(guī)則操作數(shù)。
如果VCCR信號(hào)值為一,則數(shù)據(jù)緩沖器40的內(nèi)容將被累加器58中更強(qiáng)的規(guī)則強(qiáng)度所替代。從而,向當(dāng)前正被計(jì)值的模糊輸出指定一個(gè)最大規(guī)則強(qiáng)度。接著,存儲(chǔ)在下標(biāo)寄存器中的地址用以訪問下一個(gè)規(guī)則操作數(shù)。
圖6中所示的流程圖提供了在數(shù)據(jù)處理系統(tǒng)10中執(zhí)行REV指令的一個(gè)概貌?,F(xiàn)給出更詳細(xì)的例子。
REV指令的基本操作如下每一前提值從存儲(chǔ)器中檢索并確定一個(gè)最小前提值,然后檢索每一結(jié)論值,將第一結(jié)論值與規(guī)則強(qiáng)度值進(jìn)行比較并當(dāng)且僅當(dāng)先有的結(jié)論值小于該規(guī)則強(qiáng)度值時(shí)用該規(guī)則強(qiáng)度值在存儲(chǔ)器中代替結(jié)論值。
如前所述,多模糊輸入在執(zhí)行REV指令之前由數(shù)據(jù)處理系統(tǒng)10的用戶存儲(chǔ)在內(nèi)部儲(chǔ)器32中第一預(yù)定存儲(chǔ)器單元之中。多模糊輸入是按照數(shù)組1來存儲(chǔ)的。而且用于對(duì)多模糊輸入進(jìn)行計(jì)值的每一規(guī)則也是以圖5中所示的形式存儲(chǔ)在內(nèi)部存儲(chǔ)器32中的第二預(yù)定存儲(chǔ)單元之中的。此處雖未詳細(xì)表示出來,對(duì)應(yīng)于模糊輸出的每一規(guī)則強(qiáng)度值也是存儲(chǔ)在內(nèi)部儲(chǔ)器32中一個(gè)類似于數(shù)組1的起始地址為$2000的一個(gè)數(shù)組中。在執(zhí)行REV指令之前數(shù)據(jù)處理系統(tǒng)10的用戶還必須指定所有模糊輸出的值為一十六進(jìn)制值$00。又在執(zhí)行REV指令之前數(shù)據(jù)處理系統(tǒng)10的用戶必須將累加器58初始化為十六進(jìn)制值$FF。如上所述,當(dāng)累加器58初始化為$FF時(shí),VCCR信號(hào)為取反。
在操作過程中,用戶可以通過存儲(chǔ)在外部或內(nèi)部儲(chǔ)器32的軟件程序向數(shù)據(jù)處理系統(tǒng)10提供REV指令。假如REV指令是由數(shù)據(jù)處理系統(tǒng)10的外部源提供的,則REV指令將經(jīng)由外部數(shù)據(jù)總線33輸入到外部總線接口30。此后外部總線接口30將通過內(nèi)部數(shù)據(jù)總線34將REV指令提供給COU12。如果RV指令是由內(nèi)部存儲(chǔ)器32中的軟件程序所提供的,則REV指令將經(jīng)由內(nèi)部數(shù)據(jù)總線34提供給CPU12。在CPU12中,執(zhí)行單元14響應(yīng)從總線控制邏輯電路16,控制單元20以及定序器22每一個(gè)收到的控制信號(hào)而將REV指令提供給指令解碼邏輯電路18。又CPU12的每一部件通過定時(shí)控制總線38接收定時(shí)控制信號(hào)。這種定時(shí)控制信號(hào)的路由選擇和用法在數(shù)據(jù)處理技術(shù)中是盡人皆知的,因而此不贅述。
指令解碼邏輯電路18將REV指令解碼以便提供用于正確執(zhí)行REV指令所需的多種控制與信息信號(hào)。一旦收到REV指令并將其解碼,執(zhí)行單元14就開始對(duì)存儲(chǔ)在內(nèi)部存儲(chǔ)器32中的多模糊輸入計(jì)值所必須的步驟。圖2中的CPU的控制單元20與定序器22共同提供從內(nèi)部存儲(chǔ)器32向執(zhí)行單元14轉(zhuǎn)移指向模糊輸入及模糊輸出的兩者的指針?biāo)仨毜囊幌盗卸ㄐ蚩刂菩盘?hào)。
為開始執(zhí)行REV指令,執(zhí)行單元14中的下標(biāo)寄存器(未表示出)要提供一個(gè)指向規(guī)則庫起始的指針。下標(biāo)寄存器及其在數(shù)據(jù)處理系統(tǒng)中的用法在數(shù)據(jù)處理技術(shù)中是人所共知的,故此不必詳釋。該指針指向內(nèi)部儲(chǔ)器32中的規(guī)則庫的一個(gè)起始地址,該地址存儲(chǔ)有涼爽氣溫隸屬集中第一輸入的隸屬度。該地址指出了存儲(chǔ)了規(guī)則1的第一模糊輸入值的地址。這里所述的例子中,十六進(jìn)制的地址$1001存儲(chǔ)在內(nèi)部存儲(chǔ)器32中的地址$E000處。
當(dāng)從規(guī)則數(shù)組中訪問了規(guī)則1的第一模糊輸入值的地址后,該地址經(jīng)由外部信息總線41提供給數(shù)據(jù)緩沖器40。然后數(shù)據(jù)緩沖器40將此地址值提供給比較器72,在此比較器中該地址值與十六進(jìn)制$FFFE作比較。如果該地址值等于$FFFE,則指向一個(gè)緩沖器地址并觸發(fā)VCCR位(條件碼寄存器空位,下同)。傳統(tǒng)上VCCR位是用于表示在帶符號(hào)的算術(shù)計(jì)算中的溢出錯(cuò)誤的。然而在本發(fā)明的這一實(shí)現(xiàn)方式中,在條件碼寄存器中的溢出位(VCCR)設(shè)定為表示被訪地址或是對(duì)應(yīng)于一個(gè)模糊輸入地址,或是一個(gè)緩沖器地址,或是一個(gè)模糊輸出地址。當(dāng)所訪問的是對(duì)應(yīng)第一規(guī)則的模糊輸入的地址時(shí),則VCCR位保持取反的狀態(tài)。如果被訪地址是一個(gè)緩沖器值,則VCCR位被觸發(fā)翻轉(zhuǎn)。這里所述的例子中,緩沖器值等于十六進(jìn)制值$FFFE,又當(dāng)所訪問的是模糊輸出的地址時(shí),則VCCR位保持取正狀態(tài)。
當(dāng)?shù)刂分档扔凇鏔FFE時(shí),比較器72對(duì)于觸發(fā)翻轉(zhuǎn)信號(hào)取正。條件碼邏輯電路47接收該觸發(fā)信號(hào)并進(jìn)而提供一個(gè)取正的條件碼信號(hào)給條件碼寄存器60。于是條件碼寄存器60相應(yīng)將VCCR信號(hào)不是取正就是取反。
在這里所述的例子中,從地址$E000中取出一地址值$1001,即規(guī)則數(shù)值中規(guī)則1的第一模糊輸入值的地址。因?yàn)椤?001并不等于$FFFE,比較器72就不取正觸發(fā)翻轉(zhuǎn)信號(hào)。因而由條件碼邏輯電路47所提供的條件碼信號(hào)就不能使得條件碼寄存器60觸發(fā)翻轉(zhuǎn)VCCR信號(hào)。
比較器72也將規(guī)則1的第一模糊輸入的地址值與十六進(jìn)制值$FFFF作比較。如果該地址值等于$FFFF,則指示出規(guī)則數(shù)組地址的結(jié)束并終止REV指令的執(zhí)行。
又當(dāng)從內(nèi)部存儲(chǔ)器32訪問地址$1001時(shí),則給出涼爽氣溫隸屬集合中的第一系統(tǒng)輸入的隸屬度。如數(shù)組1中所示,該隸屬度等于十六進(jìn)制值$33。內(nèi)部存儲(chǔ)器32經(jīng)由內(nèi)部數(shù)據(jù)總線34向執(zhí)行單元14的數(shù)據(jù)緩沖器40提供信息。外部信息總線41提供經(jīng)由內(nèi)部地址總線36和內(nèi)部數(shù)據(jù)總線34傳送的信息。
第一模糊輸入($33)存儲(chǔ)在數(shù)據(jù)緩沖器40之中供后繼處理之用。為了確定規(guī)則1的前提的極小隸屬度,累加器58的當(dāng)前內(nèi)容($FF)要從第一模糊輸入($33)中減去。為實(shí)現(xiàn)這一功能,累加器58的內(nèi)容要提供給信息總線A66以及數(shù)據(jù)緩沖器40的內(nèi)容要提供給信息總線B64。此外,多種控制和定時(shí)信號(hào)要經(jīng)微只讀存儲(chǔ)器控制總線65提供給執(zhí)行單元14。多種控制與定時(shí)信號(hào)是作為REV指令解碼的結(jié)果由圖2的指令解碼邏輯18提供的。
在執(zhí)行單元14中,在根據(jù)由微-只讀存儲(chǔ)器控制總線65傳送的定時(shí)信號(hào)所確定的時(shí)間點(diǎn)處第一模糊輸入提供給A-輸入多路復(fù)用器50且累加器58的內(nèi)容提供給B-輸入多路復(fù)用器56。B-輸入控制電路54提供一個(gè)“控制B”信號(hào)以便控制B-輸入多路復(fù)用器56的操作。在這一例子中,控制B信號(hào)允許B-輸入多路復(fù)用器46向ALU52傳送一個(gè)未加修正的第一模糊輸入值。類似地A-輸入控制電路54向A-輸入多路復(fù)用器50提供一個(gè)“控制A”信號(hào)。該控制A信號(hào)允許A-輸入多路復(fù)用器50取反累加器58的內(nèi)容使得這些內(nèi)容得以從ALU52中的第一模糊輸入中減去。
在收到第一模糊輸入值和已取反的累回器內(nèi)容之值時(shí),ALU52將累加器58的內(nèi)容($FF)從第一模糊輸入($33)中減去而提供一個(gè)結(jié)果。該結(jié)果為一負(fù)數(shù)($33)-$FF=-$CC),并且N信號(hào)是取正狀態(tài)。該取正的N信號(hào)經(jīng)由結(jié)果總線120傳送。如果該結(jié)果已為正值,則N標(biāo)記就不會(huì)設(shè)定并且取反的N信號(hào)就會(huì)經(jīng)由結(jié)果總線120提供。該減法運(yùn)算的數(shù)值結(jié)果是不必要的,因而在其后的算述運(yùn)算中被重新寫入。
寄存器交換邏輯46可使用戶確定一規(guī)則的每一模糊輸入中的極小隸屬度并繼而應(yīng)用這一最小隸屬度作為對(duì)于由該規(guī)則所規(guī)定的每個(gè)動(dòng)作的規(guī)則強(qiáng)度。在操作過程中,寄存器交換邏輯46是否能夠轉(zhuǎn)換累加器58及數(shù)據(jù)緩沖器40的內(nèi)容取決于VCCR與N信號(hào)的值。
寄存器交換邏輯46接收VCCR信號(hào),N信號(hào)以及定時(shí)控制信號(hào)以便控制累加器58與數(shù)據(jù)緩沖器40內(nèi)容的轉(zhuǎn)換。如前面所提及,當(dāng)從內(nèi)部存儲(chǔ)器32向執(zhí)行單元14提供模糊輸入值時(shí),VCCR信號(hào)保持取反的狀態(tài)。又ALU52提供N信號(hào)以指示出從數(shù)據(jù)緩沖器40中減去累加器58的內(nèi)容的結(jié)果是正的還是負(fù)的。如果累加器58的內(nèi)容大于存儲(chǔ)在數(shù)據(jù)緩沖器40中的第一模糊輸入,則N信號(hào)取正而指示出負(fù)的結(jié)果。反之,如果第一模糊輸入小于累加器58的內(nèi)容,則N信號(hào)保持取反的狀態(tài)以指示正的結(jié)果。在由定時(shí)電路28所確定的適當(dāng)時(shí)間,定時(shí)控制信號(hào)取正而使得寄存器交換邏輯電路46或?qū)⒗刍仄?8的內(nèi)容傳送到數(shù)據(jù)緩沖器40,將數(shù)據(jù)緩沖器40的內(nèi)容傳送到累加器58,或使得累加器58與數(shù)據(jù)緩沖器40的內(nèi)容保持相同。
在規(guī)則1的“如果”部分計(jì)值過程中,當(dāng)累加器58的內(nèi)容從第一模糊輸入中減去時(shí),則產(chǎn)生一個(gè)負(fù)的結(jié)果($33-$FF=-$CC)。于是N信號(hào)保持取正狀態(tài)。又VCCR信號(hào)被取反而指示出模糊輸入正從內(nèi)部存儲(chǔ)器32被檢索。當(dāng)定時(shí)控制信號(hào)被取正時(shí),與門62的輸出等于零且允許A信號(hào)非為取正。然而反相器68的輸出取正而使得與門70能夠?qū)⒃试SB信號(hào)取正。當(dāng)允許B信號(hào)被取正時(shí),選擇器44允許將數(shù)據(jù)從數(shù)據(jù)緩沖器40傳送到累加器58。就此而言,最小隸屬度為$33并存儲(chǔ)在累加器58中。
類似地,規(guī)則1的第二模糊輸入提供給數(shù)據(jù)緩沖器40。該第二模糊輸入是第二系統(tǒng)輸入在低氣壓(Plight)隸屬集合中所具有的隸屬度。在本例是,該隸屬度具有十六進(jìn)制值$00。又內(nèi)部存儲(chǔ)器32經(jīng)由外部信息總線41將第二模糊輸入的隸屬度提供給執(zhí)行單元14的數(shù)據(jù)緩沖器40。
為確定最小隸屬度,第一模糊輸入要從第二模糊輸入中減去。在執(zhí)行單元14中,在根據(jù)由微-只讀存儲(chǔ)器控制總線65所傳送的定時(shí)信號(hào)所確定的一個(gè)時(shí)間點(diǎn)上,第一模糊輸入提供給A-輸入多路復(fù)用器50而第二模糊輸入提供給B-輸入多路復(fù)用器56。B-輸入控制電路54向B-輸入多路復(fù)用器56的控制操作提供一個(gè)“控制B”信號(hào)。在本例中,控制B信號(hào)允許B-輸入多路復(fù)用器46向ALU52傳送一個(gè)未修改的第二模糊值。類似地,A-輸入控制電路54向A-輸入多路復(fù)用器50提供一個(gè)“控制A”信號(hào)。該控制A信號(hào)允許A-輸入多路復(fù)用器50將第一模糊輸入取反而使之得以在ALU52中從第二械糊輸入中減去。
在收到第二模糊輸入值和已取反的第一模糊輸入值時(shí),ALU52從第二模糊輸入值中減去第一模糊輸入值而再次提供一個(gè)負(fù)的結(jié)果。于是N信號(hào)被取正。又VCCR信號(hào)被取反而指示有模糊輸入正從內(nèi)部存儲(chǔ)器32中被檢索。
當(dāng)定時(shí)控制信號(hào)被取正時(shí),與門62的輸出等于零而允許A信號(hào)為非取正的。在些第一個(gè)例子中,與門70將允許B信號(hào)取正。當(dāng)允許B信號(hào)被取正時(shí),使得選擇器44能夠把數(shù)據(jù)從數(shù)據(jù)緩沖器40傳送到累加器58。因而,就此而言,最小隸屬度為$00并存儲(chǔ)在累加器58之中。
在用于規(guī)則1的模糊輸入的存儲(chǔ)單元的結(jié)尾處,緩沖器地址就由比較器72識(shí)別出來。比較器72將取正的觸發(fā)翻轉(zhuǎn)信號(hào)提供給條件碼邏輯電路47。條件碼邏輯電路47這時(shí)將條件碼信號(hào)提供給條件碼寄存器,使得條件碼寄存器60的V位(空位,下同)觸發(fā)翻轉(zhuǎn)而提供一個(gè)取正的VCCR信號(hào)。如前面所作的說明,VCCR信號(hào)被取正以指示出規(guī)則1的模糊輸出地址是下一個(gè)要從內(nèi)產(chǎn)存儲(chǔ)器32中檢索的地址。這里所述的例子中,VCCR信號(hào)被取正是在執(zhí)行REV指令的“則”部分過程中當(dāng)規(guī)則1的模糊輸出地址從內(nèi)部存儲(chǔ)器32被檢索時(shí)。
當(dāng)選定了多個(gè)模糊輸出之一時(shí),就執(zhí)行一個(gè)最大操作。因而對(duì)于REV指令的“則”部分,向每一模糊輸出指定了一個(gè)最大規(guī)則強(qiáng)度。如前所述,應(yīng)該向每一模糊輸出指定一最大規(guī)則強(qiáng)度。因而作為執(zhí)行REV指令“如果”部分的結(jié)果而存儲(chǔ)在累加器58的最小隸屬度值要同當(dāng)前存儲(chǔ)在內(nèi)部存儲(chǔ)器32的模糊輸出地址處的規(guī)則強(qiáng)度值進(jìn)行比較。在執(zhí)行REV指令的“則”部分過程中當(dāng)前規(guī)則強(qiáng)度值是駐存在累加器58中的。最大規(guī)則強(qiáng)度值總是存儲(chǔ)在內(nèi)部存儲(chǔ)器32中的。如前面所討論的那樣,最小隸屬度值是在REV指令的第一部分中計(jì)算的,其中對(duì)每一模糊輸入的隸屬度作比較以便確定最小值。
模糊輸入的最小值保留在累加器58中。這時(shí)指向當(dāng)前正被計(jì)值規(guī)則的模糊輸出的地址指針由規(guī)則數(shù)組中提供。執(zhí)行單元14中的下標(biāo)寄存器(未表示出來)將該指針遞增以便指向第一模糊輸出的一個(gè)地址。在本例中,該指針是遞增到地址$E006。在該地址$E006處,提供了第一模糊輸出的十六進(jìn)制地址$2000。由于數(shù)據(jù)處理系統(tǒng)10的用戶在REV指令執(zhí)行之前指定了存儲(chǔ)在模糊輸出數(shù)組中所有的數(shù)據(jù)值為十六進(jìn)制值$00,故當(dāng)訪問地址$2000時(shí),內(nèi)部存儲(chǔ)器32提供的是十六進(jìn)制值$00。然后該模糊輸出值($00)經(jīng)由內(nèi)部信息總線41提供給數(shù)據(jù)緩沖器40,該模糊輸出值存儲(chǔ)在緩沖器中供繼后的操作之用。
為了確定最大規(guī)則強(qiáng)調(diào)值,要從數(shù)值緩沖器40中減去累加器58的內(nèi)容而確定哪一個(gè)具有較大值。換言之,在規(guī)則計(jì)值步驟的“如果”部分過程中計(jì)算出來的最小隸屬度值要從當(dāng)前存儲(chǔ)在規(guī)則1的第一模糊輸出的地址單元中的規(guī)則強(qiáng)度值中減去。為了執(zhí)行這一功能,累加器58的內(nèi)容要提供給信息總線A66,并且數(shù)據(jù)緩沖器40的內(nèi)容要提供給信息總線B64。又多種控制和定時(shí)信號(hào)要經(jīng)過微-只讀存儲(chǔ)器控制總線65提供給執(zhí)行單元14。這些多種控制與定時(shí)信號(hào)是作為REV指令解碼的結(jié)果由圖2的指令解碼邏輯18提供的。
在執(zhí)行單元14中,存儲(chǔ)在累加器58中的最小隸屬度值在根據(jù)經(jīng)由微-只讀存儲(chǔ)器控制總線56傳送的定時(shí)信號(hào)所確定的時(shí)間點(diǎn)處提供給A-輸入多路復(fù)用器50以及存儲(chǔ)在數(shù)據(jù)緩沖器40中的當(dāng)前模糊輸出值提供給B-輸入多路復(fù)用器56。B-輸入控制電路54提供控制B信號(hào)用以控制B-輸入多路復(fù)用器56的操作。在本例中,控制B信號(hào)允許B-輸入多路復(fù)用器將來自內(nèi)部存儲(chǔ)器32未修改的模糊輸出值傳送給ALU52。類似地,A-輸入控制電路48把控制A信號(hào)提供給A-輸入多路復(fù)用器40??刂艫信號(hào)使得A-輸入多路復(fù)用器50對(duì)累加器58的內(nèi)容取反以便用于ALU52中后繼的減法操作。
在來自A-輸入多路復(fù)用器50和B-輸入多路復(fù)用器56的值都收到時(shí),ALU52就從存儲(chǔ)在對(duì)應(yīng)于規(guī)則1的第一模糊輸出的預(yù)定存儲(chǔ)單元處的模糊輸出值中減去存儲(chǔ)在累加器58中的最小隸屬度值。在這里所述的例子中,存儲(chǔ)在累加器58中的值具有十六進(jìn)制值$00。由于對(duì)規(guī)則1的每個(gè)模糊輸出指定了十六進(jìn)制值$00,于是ALU52提供的結(jié)果為$00。由于該答案非為負(fù)數(shù),故N信號(hào)保持取反的狀態(tài)并繼而提供給寄存器交換邏輯46。
如上所討論的那樣,條件碼寄存器60將VCCR信號(hào)提供給寄存器交換邏輯46。又定時(shí)控制信號(hào)是由外部源定時(shí)電路28提供給寄存器交換邏輯46的。在VCCR,N,以及定時(shí)控制信號(hào)都收到時(shí),寄存器交換邏輯46將允許A及允許B信號(hào)都取反。于是選擇器42及44分別為非允許態(tài)并使得數(shù)據(jù)緩沖器40與累加器58之間的數(shù)據(jù)不能傳送。于是在內(nèi)部存儲(chǔ)器32中的第一模糊輸出的規(guī)則強(qiáng)度不會(huì)被修改而仍具有十六進(jìn)制值$00。
類似地,在確定規(guī)則1的第二模糊輸出的規(guī)則強(qiáng)度過程中,存儲(chǔ)在累加器58的值及由內(nèi)部存儲(chǔ)器32中檢索出來的規(guī)則強(qiáng)度值都具有十六進(jìn)制值$00。因而,ALU52又將N信號(hào)取反繼而使得寄存器交換邏輯46將允許A與允許B信號(hào)都取反。于是在規(guī)則1計(jì)值之后,特定的模糊輸出,動(dòng)作1與動(dòng)作2的每一個(gè)的規(guī)則強(qiáng)度都具有十六進(jìn)制值$00。
又在用于規(guī)則1的模糊輸出存儲(chǔ)單元的結(jié)尾處,由比較器72識(shí)別出緩沖器地址。比較器72將取反的觸發(fā)翻轉(zhuǎn)信號(hào)提供給條件碼邏輯電路47。條件碼邏輯電路47把條件碼信號(hào)提供給條件碼寄存器,使得條件碼寄存器60中V位觸發(fā)翻轉(zhuǎn)而提供一個(gè)已取反的VCCR信號(hào)。如上所述,VCCR信號(hào)的取反即是指示規(guī)則2的模糊輸入的地址是下一個(gè)要從內(nèi)部存儲(chǔ)器32中檢索的地址。在這里所描述的例子中,VCCR信號(hào)的取反是在執(zhí)行REV指令的“如果”部分過程中發(fā)用于規(guī)則2的模糊輸入地址要從內(nèi)部存儲(chǔ)器33檢索出來的時(shí)候。當(dāng)VCCR信號(hào)取反時(shí),累加器58的內(nèi)容重又初始化為$FF值。
繼續(xù)執(zhí)行REV指令要求對(duì)規(guī)則2計(jì)值。如前所述,控制單元20提供從內(nèi)部存儲(chǔ)器32到執(zhí)行單元14傳送規(guī)則2的每一模糊輸入所必須的一系列定序控制信號(hào)。在規(guī)則2計(jì)值過程中,內(nèi)部存儲(chǔ)器32提供了在其中存儲(chǔ)了溫暖氣溫隸屬集中第一系統(tǒng)輸入的隸屬度的第一個(gè)地址。在這里所述的例子中,該地址將指向內(nèi)部存儲(chǔ)器32中的十六進(jìn)制地址$1002。當(dāng)?shù)刂贰?002從內(nèi)部存儲(chǔ)器32被訪問時(shí),具有十六進(jìn)制值$CC的隸屬度經(jīng)由內(nèi)部數(shù)據(jù)總線34提供給數(shù)據(jù)緩沖器40。
如同在規(guī)則1計(jì)值過程中那樣,規(guī)則2的第一模糊輸入與累加器58的初始化內(nèi)容進(jìn)行比較。當(dāng)?shù)诙彌_器地址被識(shí)別時(shí),累加器58再次初始化為十六進(jìn)制值$FF。因而根據(jù)前述的方法檢測(cè)最小值并把$CC存儲(chǔ)在累加器58之中。
類似地,規(guī)則2的第二模糊輸入提供給數(shù)據(jù)緩沖器40。該第二模糊輸入為第二系統(tǒng)輸入在中等氣壓隸屬集合中所具有的隸屬度。本例中,該隸屬度具有十六進(jìn)制值$FF。
為了確定最小隸屬度,ALU52從第二模糊輸入中減去第一模糊輸入而提供一個(gè)正的結(jié)果$33。由于該結(jié)果為正,則N標(biāo)志被清除并且經(jīng)結(jié)果總線120提供已取反的N信號(hào)。
此后,寄存器交換邏輯46接收VCCR信號(hào),N信號(hào),以及定時(shí)控制信號(hào)以便控制累加器58與數(shù)據(jù)緩沖器40的內(nèi)容的轉(zhuǎn)換。寄存器交換邏輯46將允許A與允許B信號(hào)都取反。最小隸屬度16進(jìn)制$CC,仍然存儲(chǔ)在累加器58之中。
在用于規(guī)則2的模糊輸入的存儲(chǔ)單元的結(jié)尾處,比較器72識(shí)別出緩沖器地址。比較器72向條件碼邏輯電路47提供取正的觸發(fā)翻轉(zhuǎn)信號(hào)。然后條件碼邏輯電路47將條件碼信號(hào)提供給條件碼寄存器使得條件碼寄存器60中的V位觸發(fā)翻轉(zhuǎn)而提供一個(gè)取正的VCCR信號(hào)。如前所述,VCCR信號(hào)被取反而指示規(guī)則2的模糊輸出的地址是下一個(gè)要從內(nèi)部存儲(chǔ)器32檢索的地址。
規(guī)則2的模糊輸入的最小值保留在累加器58中。當(dāng)前正被計(jì)值的規(guī)則的模糊輸出然后從規(guī)則數(shù)組中提供。執(zhí)行單元14中的下標(biāo)寄存器將指向第一模糊輸出地址的指針增加。本例中,該指針增加到地址$E012。在地址$012處,提供了第一模糊輸出的地址即十六進(jìn)制的地址$2002。因?yàn)樵趫?zhí)行REV指令之前數(shù)據(jù)處理系統(tǒng)10的用戶將所有存儲(chǔ)在模糊輸出數(shù)組的數(shù)據(jù)值指定為十六進(jìn)制值$00,故當(dāng)訪問地址$2002時(shí),內(nèi)部存儲(chǔ)器32提供十六進(jìn)制值$00。然后模糊輸出值$00經(jīng)由外部信息總線41提供給數(shù)據(jù)緩沖器40,其中存儲(chǔ)的模糊輸出值供繼后的操作之用。
然后ALU52從存儲(chǔ)在數(shù)據(jù)緩沖器40中的十六進(jìn)制值$00中減去存儲(chǔ)在累加器58中的十六進(jìn)制值$CC。結(jié)果是一負(fù)的$CC值且N信號(hào)被取正。當(dāng)N,VCCR,及定時(shí)信號(hào)者提供給寄存器交換邏輯46時(shí),寄存器交換邏輯46將允許A信號(hào)取正而將允許B信號(hào)取反。
當(dāng)允許A信號(hào)取正時(shí),選擇器42就能夠?qū)⒗奂悠?8的內(nèi)容驅(qū)動(dòng)到數(shù)據(jù)緩沖器40。數(shù)據(jù)緩沖器40暫時(shí)把上述的由累加器58提供的最小隸屬度值($CC)作為最大規(guī)則強(qiáng)度值存儲(chǔ)起來。而且數(shù)據(jù)緩沖器40把該最大規(guī)則強(qiáng)度值傳送給規(guī)則2的第一模糊輸出的地址單元($2002)。于是在執(zhí)行REV指令過程的這一點(diǎn)時(shí),值$CC是內(nèi)部存儲(chǔ)器32中的地址$2002處的動(dòng)作3的當(dāng)前規(guī)則強(qiáng)度值。
又在規(guī)則2的模糊輸出存儲(chǔ)單元的結(jié)尾處,比較器72識(shí)別出緩沖器地址。比較器72將一個(gè)取正的觸發(fā)翻轉(zhuǎn)信號(hào)提供給條件碼邏輯電路47。條件碼邏輯電路47將條件碼信號(hào)提供給條件碼寄存器使得條件碼寄存器60中的V位觸發(fā)翻轉(zhuǎn)而提供一個(gè)取反的VCCR信號(hào),如前所述,VCCR信號(hào)取反以指示著規(guī)則3的一個(gè)模糊輸入的地址是下一個(gè)要從內(nèi)部存儲(chǔ)器32中被檢索的地址。在這里所述的例子中,VCCR信號(hào)被取反是在執(zhí)行REV指令的“如果”部分過程中當(dāng)規(guī)則3的模糊輸入的地址從內(nèi)部存儲(chǔ)器32被檢索的時(shí)候。當(dāng)VCCR信號(hào)取反時(shí),累加器58的內(nèi)容重又初始化為$FF值。
繼續(xù)執(zhí)行REV指令就開始對(duì)規(guī)則3計(jì)值。如前所述,CPU12的控制單元20將提供從內(nèi)部存儲(chǔ)器32到執(zhí)行單元14傳送規(guī)則3的每一模糊輸入所必須的一系列定序控制信號(hào)。在對(duì)規(guī)則3計(jì)值過程中,內(nèi)部存儲(chǔ)器32提供第一個(gè)地址,在該地址處存儲(chǔ)了第二系統(tǒng)輸入在中氣壓隸屬集中的隸屬度。在這里所述的例子中,該地址是指向內(nèi)部存儲(chǔ)器32中十六進(jìn)制地址$1005的。當(dāng)從內(nèi)部存儲(chǔ)器32訪問地址$1005時(shí),值為十六進(jìn)制的$FF的隸屬度就經(jīng)內(nèi)部數(shù)據(jù)總線34提供給數(shù)據(jù)緩沖器40。
如前所述,當(dāng)VCCR信號(hào)被取反時(shí),累加器58的內(nèi)容就初始化為$FF。當(dāng)存儲(chǔ)在數(shù)據(jù)緩沖器40中的隸屬度由ALU52從累加器58的內(nèi)容中減去時(shí),產(chǎn)生的結(jié)果為零。由于結(jié)果非負(fù),故N信號(hào)不取正于是寄存器交換邏輯56不將允許A取正或不將允許B信號(hào)取正而數(shù)據(jù)緩沖器40和累加器58之間也就不傳送信息。
在規(guī)則3的模糊輸入的存儲(chǔ)單元的結(jié)尾處,比較器72識(shí)別出緩沖器地址。比較器72將取正的觸發(fā)翻轉(zhuǎn)信號(hào)提供給條件碼邏輯電路47。之后條件碼邏輯電路47把條件碼信號(hào)提供給條件碼寄存器60使得條件碼寄存器60中的V位觸發(fā)翻轉(zhuǎn)而提供一個(gè)取正的VCCR信號(hào)。如前所述,VCCR信號(hào)取正即指示出規(guī)則3的模糊輸出的一地址是下一個(gè)要從內(nèi)部存儲(chǔ)器32中檢索的地址。
這之后,規(guī)則3的模糊輸出地址從內(nèi)部存儲(chǔ)器32中被訪問并向數(shù)據(jù)緩沖器40提供一個(gè)十六進(jìn)制值$CC。該十六進(jìn)制值$CC是作為規(guī)則2的一個(gè)計(jì)值結(jié)果而提供的,其中的模糊輸出,動(dòng)作3,被賦值成規(guī)則強(qiáng)度值為十六進(jìn)制的$CC。于是十六進(jìn)制值$CC提供給數(shù)據(jù)緩沖器40。
然后ALU52從存儲(chǔ)在數(shù)據(jù)緩沖器40中的$CC的十六進(jìn)制值中減去存儲(chǔ)在累加器58中的$FF的十六進(jìn)制值。結(jié)果是負(fù)值$-33。當(dāng)提供給寄存器交換邏輯46是,寄存器交換邏輯46將允許A取正。于是選擇器42就能夠從累加器58到數(shù)據(jù)緩沖器40輸送數(shù)據(jù)。數(shù)據(jù)緩沖器40把最小隸屬度值傳送到規(guī)則3的模糊輸出即動(dòng)作3輸出的地址單元。于是在執(zhí)行REV指令過程的這一時(shí)刻,十六進(jìn)制值$FF即是動(dòng)作3的當(dāng)前規(guī)則強(qiáng)度值。
在規(guī)則3計(jì)值之后,指示待計(jì)值的規(guī)則數(shù)組結(jié)束的一個(gè)特定緩沖器地址由比較器72檢測(cè)到,于是REV指令終止。這時(shí),規(guī)則1,2與3均已被計(jì)值且相應(yīng)的模糊輸出也已被賦予了規(guī)則強(qiáng)度值。在這里所述的例子中,動(dòng)作1與2每一個(gè)都賦予十六進(jìn)制的$00這樣的規(guī)則強(qiáng)度。而且,動(dòng)作3被賦成規(guī)則強(qiáng)度值為十六進(jìn)制的$FF。然后,每個(gè)動(dòng)作都是作為模糊輸出而提供給非模糊化程序而用以對(duì)于數(shù)據(jù)處理系統(tǒng)10確定適當(dāng)?shù)膭?dòng)作的。例如,動(dòng)作3可非模糊化為打開閾門或接通風(fēng)扇。又動(dòng)作1至動(dòng)作3的規(guī)則強(qiáng)度可非模糊化以確定風(fēng)扇接通或閾門打開的程度。非模糊化的操作在數(shù)據(jù)處理技術(shù)中是熟知的事情,故不必在此詳釋。
于是,在數(shù)據(jù)處理系統(tǒng)20中執(zhí)行REV指令過程中,規(guī)則1、規(guī)則2以及規(guī)則3都被快速地計(jì)值而所用的附加電路量是較少的。圖3中所示大部分電路是通常在數(shù)據(jù)處理器中用于執(zhí)行普通處理任務(wù)的。為了實(shí)現(xiàn)本發(fā)明需要的僅只是在微-只讀存儲(chǔ)器中少量的附加存儲(chǔ)器和少量的附加指令解碼邏輯。又在執(zhí)行單元14中,除傳統(tǒng)上所需的邏輯而外尚需要比較器72和寄存器開關(guān)邏輯電路46。
由于全部的規(guī)則計(jì)值步驟是完全在執(zhí)行REV指令過程中進(jìn)行的,故達(dá)到了較快的執(zhí)行時(shí)間。在規(guī)則計(jì)值步驟先前的實(shí)現(xiàn)方法中需要帶有很多步驟的軟件程序。例如,應(yīng)用MC68HC11指令集合而實(shí)現(xiàn)的軟件程度通常要三十個(gè)指令來執(zhí)行計(jì)值步驟。而REV指令代替了MC68HC11程序所有的三十一個(gè)指令。因而通常執(zhí)行規(guī)則計(jì)值步驟所需的執(zhí)行時(shí)間通過執(zhí)行單一的REV指令而顯著地減少了。
而且REV指令非常靈活而不需要固定數(shù)目的模糊輸入與模糊輸出。通過檢測(cè)緩沖器地址和相應(yīng)地設(shè)置VCCR信號(hào),執(zhí)行單元14就分別提供了模糊輸出和模糊輸入的最大或最小值。數(shù)據(jù)處理系統(tǒng)10的用戶只需要在內(nèi)部存儲(chǔ)器32中預(yù)定的單元中存儲(chǔ)用于待計(jì)值的規(guī)則的格式。將規(guī)則存儲(chǔ)在預(yù)定的存儲(chǔ)單元之中的先有技術(shù)的方法中,規(guī)則必須跟隨對(duì)每一規(guī)則具有第一個(gè)預(yù)定數(shù)目的模糊輸入和第二個(gè)預(yù)定數(shù)目的模糊輸出。如果不檢測(cè)緩沖器地址且又對(duì)每一規(guī)則要求固定數(shù)目的模糊輸入和模糊輸出,那么對(duì)于那些具有較少模粗輸入和模糊輸出的規(guī)則來說勢(shì)必浪費(fèi)大量的存儲(chǔ)空間。
又由于諸規(guī)則是存儲(chǔ)在存儲(chǔ)器的一個(gè)數(shù)組中而可以無需從外部源中斷而進(jìn)行計(jì)值,于是對(duì)于每一REV指令可對(duì)一個(gè)以上的,規(guī)則進(jìn)行計(jì)值。在第一個(gè)規(guī)則計(jì)值之后,第二個(gè)規(guī)則可以立即進(jìn)行計(jì)值而無需從數(shù)據(jù)處理系統(tǒng)10的用戶那里檢索補(bǔ)充的信息。直至該數(shù)組的結(jié)尾到達(dá)之前均可對(duì)規(guī)則進(jìn)行檢索。數(shù)組的結(jié)束是由特殊的緩沖器地址指示的。先前方法中在執(zhí)行規(guī)則計(jì)值步驟過程中,每一規(guī)則是被分別計(jì)值的。因而應(yīng)用以前的軟件技術(shù)對(duì)多規(guī)則進(jìn)行計(jì)值所需要的時(shí)間就長于用REV指令對(duì)同樣多的規(guī)則計(jì)值所需的時(shí)間。
這里所陳述的本發(fā)明的實(shí)現(xiàn)方法中,REV指令的執(zhí)行不會(huì)損失任何中間結(jié)果而可進(jìn)行中斷。中斷處理之后,REV指令的執(zhí)行可在REV指令中斷處的地方恢復(fù)。REV指令之所以可以中斷是因?yàn)橹赶騼?nèi)部存儲(chǔ)器32中的規(guī)則數(shù)組的指針在中間期間是存儲(chǔ)在仍然保留的下標(biāo)寄存器之中。而且在中斷過程中VCCR位的狀態(tài)不會(huì)改變。這是因?yàn)閂CCR位的狀態(tài)是存儲(chǔ)在條件碼寄存器60之中,在中斷操作過程中該處理器狀態(tài)寄存器是不會(huì)改變的。最大和最小操作的中間結(jié)果也存儲(chǔ)在累加器58之中。在中斷操作過程中累加器58也是不會(huì)改變的。于是當(dāng)處理大數(shù)量的規(guī)則時(shí),雖然REV指令要耗費(fèi)時(shí)間,但是該指令可由數(shù)據(jù)處理系統(tǒng)10的用戶中斷以便執(zhí)行更為緊迫的操作。當(dāng)該較緊迫的操作完成之后,REV指令的執(zhí)行即可恢復(fù)。
這里所描述的本發(fā)明的實(shí)現(xiàn)僅只是以一個(gè)例子的方式提供的。然而可能存在許多其他的實(shí)現(xiàn)方式用于執(zhí)行這里所描述的功能。例如,待計(jì)值的規(guī)則的規(guī)則庫的啟動(dòng)可以作為REV指令的一個(gè)操作數(shù)而提供。又?jǐn)?shù)據(jù)處理系統(tǒng)10的外部儲(chǔ)器電路可用于存儲(chǔ)每一規(guī)則以及在這些規(guī)則計(jì)值過程中所應(yīng)用的模糊輸入。而且雖然在本發(fā)明的這一實(shí)現(xiàn)方式中應(yīng)用N和VCCR信號(hào)來控制寄存器交換邏輯46的操作,但是數(shù)據(jù)處理系統(tǒng)10之中的其他信號(hào)也適于使用。而且寄存器交換邏輯56中所使用的邏輯門也可用其他邏輯電路替代,如象NAND(與非)門,OR(或)門,NOR(或非)門,或者Exclusive-OR(異)門。
這里雖然已描述了本發(fā)明的原理,但對(duì)于本專業(yè)技術(shù)人員來說能夠清楚地理解的是這一描述僅是以例子的方式作出的并且該描述不能作為本發(fā)明所及范圍的限制。于是,所附權(quán)利要求就是要涵蓋所有屬于本發(fā)明實(shí)質(zhì)精神和范圍的變形。
權(quán)利要求
1.用于操作數(shù)字式數(shù)據(jù)處理器以執(zhí)行模糊規(guī)則計(jì)值操作的方法,該方法以下述步驟為特征1)從一個(gè)存儲(chǔ)單元檢索一個(gè)地址值;2)將該地址值與一個(gè)第一邊界值進(jìn)行比較,如果該地址值與該第一邊界值符合則終止該模糊規(guī)則計(jì)值操作;3)將該地址值與一個(gè)第二邊界值進(jìn)行比較,如果該地址值與該第二邊界值符合則改變一個(gè)第一標(biāo)記信號(hào)的狀態(tài);4)如果該地址值與第一及第二邊界值都不符合而且第一標(biāo)記信號(hào)處于第一狀態(tài),則從該地址值所指定的存儲(chǔ)單元中檢索一個(gè)隸屬函數(shù)值并使用該隸屬函數(shù)值執(zhí)行一個(gè)第一算術(shù)運(yùn)算;5)如果該地址值與第一及第二邊界值都不符合而且第一標(biāo)記信號(hào)處于第二狀態(tài),則從由該地址值指定的存儲(chǔ)單元中檢索一個(gè)結(jié)論值,應(yīng)用該結(jié)論值執(zhí)行第二算術(shù)運(yùn)算并將該第二算術(shù)運(yùn)算的結(jié)果有選擇地寫入由該地址值所指定的存儲(chǔ)單元;以及6)重復(fù)步1)-5)。
2.權(quán)利要求1的方法,其中從其檢索地址值的存儲(chǔ)單元是由包含在一個(gè)下標(biāo)寄存器中的地址所指定,又該方法還以下述步驟為特征將包含在該下標(biāo)寄存器中的地址增值。
3.權(quán)利要求1的方法,其中執(zhí)行第一算術(shù)運(yùn)算的步進(jìn)而以下述步驟為特征從隸屬函數(shù)值中減去包含在數(shù)據(jù)寄存器中的一個(gè)值;以及如該減法步結(jié)果為負(fù)則以該隸屬函數(shù)值代替包含在該數(shù)據(jù)寄存器中的值。
4.權(quán)利要求3的方法,執(zhí)行第二算術(shù)運(yùn)算的步進(jìn)而以下述步驟為特征從包含在數(shù)據(jù)寄存器中的值減去該結(jié)論值;以及如果該減法步結(jié)果為正則以包含在數(shù)據(jù)寄存器中的值代替存儲(chǔ)在由該地址值所指定的存儲(chǔ)單元處的結(jié)論值。
5.操作數(shù)字式數(shù)據(jù)處理系統(tǒng)以執(zhí)行模糊規(guī)則計(jì)值操作的方法,該方法以下述步驟為特征1)通過執(zhí)行以下步驟而從存儲(chǔ)器中檢索多隸屬函數(shù)值ⅰ)從存儲(chǔ)器中的一個(gè)單元檢索一地址值;ⅱ)判斷該地址值是否符合一個(gè)第一邊界值;ⅲ)如果該地址值符合該第一邊界值,則終止該多隸屬函數(shù)值的檢索步驟;ⅳ)如果該地址值不符合該第一邊界值,則從由該地址值所指定的該存儲(chǔ)器的一個(gè)單元中檢索一隸屬函數(shù)值。以及ⅴ)重復(fù)步1)ⅰ)-1)ⅳ);2)判定該多隸屬函數(shù)值中最小的一個(gè);以及3)通過執(zhí)行以下步驟而判定多結(jié)論值ⅰ)從存儲(chǔ)器中一個(gè)單元檢索一個(gè)地址值;ⅱ)判定該地址值是否符合第二邊界值;ⅲ)如果該地址值符合該第二邊界值,則終止該多結(jié)論值判定步驟;ⅳ)如果該地址值不符合該第二邊界值,則從由該地址值指定的存儲(chǔ)器的一個(gè)中檢索一結(jié)論值;ⅴ)將檢索出來的結(jié)論值與該多隸屬函數(shù)值的最小值進(jìn)行比較;ⅵ)如果檢索出來的結(jié)論值小于該多隸屬函數(shù)值的最小值則將該多隸屬函數(shù)值的最小值存儲(chǔ)在由該地址值所指定的存儲(chǔ)器單元處;以及ⅶ)重復(fù)步3)ⅰ)-3)ⅵ)。
6.權(quán)利要求5的方法,其中判定多隸屬函數(shù)值最小值的步還以下述步驟為特征從隸屬函數(shù)值中減去包含在一個(gè)數(shù)據(jù)寄存器的值;以及如果該減法步的結(jié)果為負(fù)則以隸屬函數(shù)值代替包含在該數(shù)據(jù)寄存器中的值。
7.權(quán)利要求5的方法,其中該方法由對(duì)一單獨(dú)的指令進(jìn)行解碼而啟動(dòng)。
8.操作數(shù)字式數(shù)據(jù)處理器的方法,其組成步驟如下對(duì)一個(gè)第一指令進(jìn)行解碼;以及應(yīng)響對(duì)該經(jīng)一指令的解碼而執(zhí)行以下步驟1)從由一下標(biāo)寄存器的內(nèi)容所指定的存儲(chǔ)器單元檢索一地址值;2)將該下標(biāo)寄存器的內(nèi)容加1;3)將該地址值與一個(gè)第一邊界值比較,如果該地址值與該第一邊界值符合則終止執(zhí)行該第一指令;4)將該地址值與一個(gè)第二邊界值比較,如果該邊界值與該第二邊界值符合則更變第一標(biāo)記信號(hào)的狀態(tài);5)如果該地址值與第一及第二邊界值都不符合且第一標(biāo)記信號(hào)處于一個(gè)第一狀態(tài),則從由該地址值所指定的存儲(chǔ)單元中檢索一個(gè)第一數(shù)據(jù)值并應(yīng)用該第一數(shù)據(jù)值執(zhí)行一個(gè)第一算術(shù)運(yùn)算;6)如果該地址值與第一及第二邊界值都不符合且第一標(biāo)記信號(hào)處于一個(gè)第二狀態(tài),則從由該地址值所指定的存儲(chǔ)單元中檢索一個(gè)第二數(shù)據(jù)值并應(yīng)用該第二數(shù)據(jù)值執(zhí)行一個(gè)第二算術(shù)運(yùn)算,將該第二算術(shù)運(yùn)算的結(jié)果選擇地寫入由該地址值所指定的存儲(chǔ)單元;以及7)重復(fù)步1)至6)。
9.權(quán)利要求8的方法,其中的第一算術(shù)運(yùn)算又以下述步驟為特征從該數(shù)據(jù)值中減去包含一數(shù)據(jù)寄存器中的一個(gè)值;以及如果該減法步的結(jié)果為負(fù),則以該數(shù)據(jù)值代替包含在該數(shù)據(jù)寄存器中的值。
10.權(quán)利要求9的方法,其中執(zhí)行第二算術(shù)運(yùn)算的步又以下述步驟為特征從包含在該數(shù)據(jù)寄存器中的值中減去該數(shù)據(jù)值;以及從包含在該數(shù)據(jù)寄存器中的值減去該數(shù)據(jù)值所得的結(jié)果,如果為正,則將該結(jié)果寫入由該地址值所指定的存儲(chǔ)單元中。
全文摘要
響應(yīng)一個(gè)單獨(dú)的“REV”軟件指令,在一個(gè)數(shù)據(jù)處理器(10)中對(duì)多個(gè)模糊邏輯規(guī)則計(jì)值的一種電路(14)。該REV指令對(duì)存儲(chǔ)在一個(gè)存儲(chǔ)器(32)中的規(guī)則進(jìn)行計(jì)值以確定每一規(guī)則的規(guī)則強(qiáng)度。每一規(guī)則的前提和結(jié)論由一緩沖器地址分隔開。為了對(duì)前提計(jì)值,一個(gè)ALU(算術(shù)邏輯單元)(52)從存儲(chǔ)在一累加器(58)中的當(dāng)前前提中減去存儲(chǔ)器(32)中的一個(gè)前提。其后,一個(gè)交換邏輯(46)提供控制信息以便指定一個(gè)最小值作為該規(guī)則的規(guī)則強(qiáng)度。
文檔編號(hào)G06N7/02GK1080412SQ9310669
公開日1994年1月5日 申請(qǐng)日期1993年6月5日 優(yōu)先權(quán)日1992年6月17日
發(fā)明者J·格里格·瓦爾特, 詹姆斯·M·西比格特羅斯, 詹姆斯·L·布羅斯吉尼 申請(qǐng)人:莫托羅拉公司