專利名稱:估計(jì)模糊邏輯規(guī)則的數(shù)據(jù)處理系統(tǒng)及其方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)據(jù)處理系統(tǒng),具體涉及執(zhí)行模糊邏輯運(yùn)算的數(shù)據(jù)處理系統(tǒng)。
業(yè)已開發(fā)了一些數(shù)據(jù)處理器,起二進(jìn)制機(jī)器的作用,其輸入和輸出都表示為“1”和“0”,而其它表示的可能性不存在。雖然在大多數(shù)情況下這樣工作得很好,但有時(shí)回答并不是簡(jiǎn)單的“是”或“否”,而是在二者之間的某些東西。稱為“模糊邏輯”的一種概念已被開發(fā),能使基于二進(jìn)制邏輯的數(shù)據(jù)處理器提供出“是”與“否”的回答。
模糊邏輯是一種邏輯系統(tǒng),它具有有模糊邊界的隸屬函數(shù)。隸屬函數(shù)將主題表達(dá)語句(如“氣溫是暖和的”)轉(zhuǎn)換成為典型的數(shù)據(jù)處理器可識(shí)別的一個(gè)值。標(biāo)記(諸如“暖”)用于識(shí)別輸入值的范圍,該范圍的邊界不是點(diǎn),在一側(cè)邊界處該標(biāo)記是“真”,而在另一側(cè)邊界處該標(biāo)記是“假”。而在實(shí)施模糊邏輯的系統(tǒng)中,隸屬函數(shù)的邊界是逐漸地變化的并且可與相鄰隸屬集的邊界重疊。為此,隸屬的程度典型地指定給一個(gè)輸入值。例如,如果一個(gè)溫度范圍提供了多個(gè)隸屬函數(shù),則輸入溫度可落入標(biāo)記“冷”和“暖”的兩個(gè)函數(shù)的重疊區(qū)域內(nèi)。下一步的處理將要求確定在每個(gè)隸屬函數(shù)中的隸屬程度(即目前的溫度適合每個(gè)隸屬集(“冷”和“暖”的程度)。
稱為“模糊”的步驟用于將一個(gè)輸入與采用模糊邏輯的系統(tǒng)中的隸屬函數(shù)相關(guān)。該模糊過程將具體的數(shù)值附加到主題表達(dá)語句(諸如“氣溫是暖和的”)上。這些數(shù)值嘗試提供出人體感覺的最佳近似。
在模糊步驟之后,執(zhí)行稱為“規(guī)則評(píng)定”(rule evaluation)的步驟。在執(zhí)行規(guī)則評(píng)定步驟期間,取決于模糊輸入值的規(guī)則表達(dá)語句被評(píng)估以得到模糊輸出。例如,假定被評(píng)定的規(guī)則可表示為如果(氣溫是暖和的)和(壓力高),則(風(fēng)扇速度為中等)。
在這個(gè)規(guī)則中,必須評(píng)定兩前項(xiàng)“氣溫是暖和的”和“壓力高”,以確定其結(jié)果“風(fēng)扇速度為中等”的規(guī)則強(qiáng)度,在執(zhí)行該規(guī)則評(píng)定步驟期間,前項(xiàng)是“真”的程度將影響該規(guī)則是“真”的程度。前項(xiàng)的最小值用以作為該規(guī)則的結(jié)果規(guī)則強(qiáng)度。鑒此,如果一個(gè)以上的規(guī)則被評(píng)定并且給風(fēng)扇一個(gè)以上的指令,則每個(gè)規(guī)則的結(jié)果的規(guī)則強(qiáng)度集體地用于確定該風(fēng)扇的動(dòng)作。例如,上述提供的規(guī)則可被評(píng)定具有規(guī)則強(qiáng)度為X。另外,第二規(guī)則被評(píng)定,以高速開啟風(fēng)扇,規(guī)則強(qiáng)度為Y,這里Y大于X。再則,如果希望,每個(gè)規(guī)則可被加權(quán)。用選定的加權(quán)值乘以前項(xiàng)可對(duì)選定的規(guī)則提供所希望的加強(qiáng)。
響應(yīng)由該規(guī)則評(píng)定步驟提供的模糊輸出,模糊邏輯運(yùn)算的最后步驟是提供一個(gè)適當(dāng)?shù)膭?dòng)作,模糊邏輯過程中的最后步驟稱為“解除模糊”(defuzzification)。這個(gè)步驟把規(guī)則評(píng)定步驟的競(jìng)爭(zhēng)結(jié)果分解為單個(gè)動(dòng)作。解除模糊是把所有模糊輸出組合為可用于標(biāo)準(zhǔn)數(shù)據(jù)處理系統(tǒng)的一個(gè)復(fù)合結(jié)果的過程。有關(guān)模糊邏輯的評(píng)細(xì)情況參見James M.Sibigtroth的“Implementing Fuzzy Expert Rules in Hard-ware”論文。這篇論文發(fā)表在1992年4月的AIEXPERT第25至31頁。
總之,規(guī)則是由隨后接著一個(gè)或幾個(gè)動(dòng)作(結(jié)果)的一系列前提(前項(xiàng))組成的。每個(gè)前提對(duì)應(yīng)于一個(gè)模糊輸入,而每個(gè)動(dòng)作對(duì)應(yīng)于一個(gè)模糊輸出。規(guī)則強(qiáng)度可以與所選定的加權(quán)值相乘,以增強(qiáng)所選定的規(guī)則。
在規(guī)則評(píng)定步驟的硬件實(shí)施中,專門的連接和電路用于將模糊輸入與模糊輸出相關(guān)聯(lián)。這種解決方案經(jīng)常要求專用的存儲(chǔ)電路,并且是不靈活的。在規(guī)則評(píng)定步驟的軟件實(shí)施中,利用指令程序來評(píng)估規(guī)則。這種軟件的解決方案通常比硬件方案慢,并且要求大量的程序存儲(chǔ)品。在工業(yè)界數(shù)據(jù)必須進(jìn)行盡可能快的計(jì)算、移動(dòng)和操作,快的執(zhí)行時(shí)間是主要的。鑒此,對(duì)于某些應(yīng)用,軟件不是一個(gè)可行的解決方案。
據(jù)此,現(xiàn)在需要一種用以快速地但無需擴(kuò)大的硬件要求的執(zhí)行規(guī)則評(píng)定的電路或方法。需要與硬件解決方案相關(guān)的速度而無需通常與這種解決方案相關(guān)的專用電路面積。本發(fā)明可以滿足這種需要,本發(fā)明的特點(diǎn)和優(yōu)點(diǎn)將結(jié)合以下附圖閱讀下文的詳細(xì)敘述會(huì)更加明了。重要的是,請(qǐng)注意這些附圖不代表本發(fā)明的唯一形式。
圖1以曲線圖形式示出用于敘述模糊邏輯的一些概念和基本術(shù)語;圖2示出根據(jù)本發(fā)明的數(shù)據(jù)處理系統(tǒng)的方框圖;圖3示出圖2的一個(gè)執(zhí)行單元的方框圖;圖4示出圖3的寄存器交換邏輯(Swap logic)電路的邏輯電路形式;圖5以存儲(chǔ)映像變換形式示出圖2的內(nèi)部存儲(chǔ)器中被評(píng)定的規(guī)則陣列的;和圖6示出根據(jù)這里敘述的本發(fā)明在執(zhí)行REVW指令期間執(zhí)行的指令流程的流程圖。
本發(fā)明提供在數(shù)據(jù)處理系統(tǒng)中快速并以最小數(shù)量的電路來執(zhí)行加權(quán)的規(guī)則評(píng)定操作的數(shù)據(jù)處理系統(tǒng)及其方法。加權(quán)規(guī)則評(píng)定操作在一個(gè)單一指令中被編碼,該指令被有效地執(zhí)行,無需在該數(shù)據(jù)處理系統(tǒng)中過量的附加電路。鑒此,本發(fā)明提供一個(gè)指令,它允許數(shù)據(jù)處理系統(tǒng)的用戶快速地執(zhí)行加權(quán)的規(guī)定評(píng)定步驟,而無需長(zhǎng)的和耗時(shí)的軟件程序。
根據(jù)本發(fā)明,具有字母標(biāo)記“REVW”的一個(gè)新指令可使得該數(shù)據(jù)處理系統(tǒng)執(zhí)行一系列的步驟,這些步驟包含從存儲(chǔ)器中檢索操作數(shù)和使用這些操作數(shù)執(zhí)行算術(shù)運(yùn)算的性能。如果在執(zhí)行REVW指令前被評(píng)定的規(guī)則的前項(xiàng)和該規(guī)則結(jié)果的隸屬函數(shù)值已恰當(dāng)?shù)卮鎯?chǔ)在存儲(chǔ)器中,則REVW指令的執(zhí)行得到恰當(dāng)?shù)脑u(píng)定和規(guī)則的加權(quán)。假定前項(xiàng)和結(jié)果以特定的格式存儲(chǔ)在存儲(chǔ)器中,并且充分地使用在指令執(zhí)行中可能的已有硬件,根據(jù)本發(fā)明的數(shù)據(jù)處理系統(tǒng)允許以很少的附加硬件有效的評(píng)定模糊邏輯規(guī)則。例如,用在數(shù)據(jù)處理器中執(zhí)行符號(hào)運(yùn)算過程中的條件碼寄存器的溢出或V比特在本發(fā)明中用作與從存儲(chǔ)品中的操作數(shù)的處理相關(guān)的一個(gè)標(biāo)記。而且,條件碼寄存器的進(jìn)位或C比特用于指示被執(zhí)行的加權(quán)運(yùn)算。
在描述本發(fā)明的實(shí)施例時(shí),使用了一些術(shù)語“認(rèn)定”(assert)和“否定”(negate)以及其各種語法形式,以在涉及“高態(tài)有效”和“低態(tài)有效”邏輯信號(hào)混合使用時(shí)避免混淆?!罢J(rèn)定”用于指邏輯信號(hào)或寄存器比特被轉(zhuǎn)換為其有效或邏輯“真”狀態(tài)?!胺穸ā庇糜谥高壿嬓盘?hào)或寄存器比特被轉(zhuǎn)換為無效或邏輯“假”(fale)狀態(tài)。另外,在數(shù)值前用符號(hào)“$”表示十六進(jìn)制。
圖1提供說明模糊邏輯的幾個(gè)基本術(shù)語和概念。在圖1所述的模糊邏輯系統(tǒng)中,“系統(tǒng)輸入”是以華氏度為單位的溫度。提供四個(gè)隸屬函數(shù)以給出溫度范圍的標(biāo)號(hào)。例如,從0至35度,標(biāo)注溫度為“冷”。類似地,從25度至60度,標(biāo)注溫度為“涼”。請(qǐng)注意,每個(gè)隸屬集的邊界與相鄰集的邊界重疊。為此,一個(gè)溫度可在一個(gè)以上的集內(nèi)。例如,假定系統(tǒng)輸入指示溫度58度。參見圖1,注意到58度是在“冷”和“暖”隸屬集兩者的邊界內(nèi)。但是,可獲得在每個(gè)隸屬集內(nèi)的隸屬程序。對(duì)于“冷”隸屬集,該系統(tǒng)輸入具有十六進(jìn)制值$33的隸屬程度,而對(duì)于“暖”隸屬集,具有十六進(jìn)制值$CC的隸屬程度。如果系統(tǒng)輸入已指示70度的溫度,在“暖”隸屬集內(nèi),該溫度已具有十六進(jìn)制值$FF的隸屬程度。同樣地,在“熱”隸屬集內(nèi),70度的溫度具有十六進(jìn)制值$00的隸屬程度。在圖1所述的模糊邏輯系統(tǒng)中,從十六進(jìn)制值$00至$FF范圍的隸屬程度對(duì)應(yīng)于從0.00至0.996的一個(gè)小數(shù)值。本領(lǐng)域的技術(shù)人員可以用一個(gè)單一的8比特二進(jìn)制字節(jié)來表示。
上述運(yùn)算的指令和方法的一個(gè)實(shí)施例按照修改型式的MC68HC11微控制器來實(shí)現(xiàn)。MC68HC11是一個(gè)8比特的微控制器,它包括16比特地址和存儲(chǔ)寄存器,可從德克薩斯州奧斯汀市的摩托羅拉公司買到。在圖2中更詳細(xì)地示出這個(gè)實(shí)施例。
圖2示出一個(gè)數(shù)據(jù)處理系統(tǒng)10,其中可實(shí)施加權(quán)的規(guī)則評(píng)定指令。數(shù)據(jù)處理系統(tǒng)10一般包括一個(gè)中央處理單元(CPU)12、一個(gè)振蕩器24、一個(gè)電源電路26、一個(gè)定時(shí)電路28、一個(gè)外部總線接口30和一個(gè)內(nèi)部存儲(chǔ)器32。CPU12通常具有一個(gè)執(zhí)行單元14、一個(gè)總線控制邏輯單元16、一個(gè)指令解碼邏輯電路18、一個(gè)控制單元20和一個(gè)順序器22。
在運(yùn)算期間將一個(gè)“Osc1”信號(hào)經(jīng)過外部信源(如晶體)提供給振蕩器24。該晶體連接在Os1和Os2信號(hào)之間能使該晶體振蕩。Os1把“時(shí)鐘”信號(hào)提供給數(shù)據(jù)處理系統(tǒng)10的其余部分。在數(shù)據(jù)處理技術(shù)中晶體振蕩器的操作是眾所周知的,而且對(duì)于本領(lǐng)域的普通技術(shù)人員是清楚的。
電源電路26從外部電源接收“Vdd”和“Vss”信號(hào)。Vdd信號(hào)提供正5伏和Vss信號(hào)提供基準(zhǔn)或地電壓。Vdd和Vss信號(hào)提供給數(shù)據(jù)處理系統(tǒng)10的每個(gè)其余部件。這些信號(hào)的路由在數(shù)據(jù)處理技術(shù)中是眾所周知的,而且對(duì)于本領(lǐng)域的普通技術(shù)人員是顯而易見的。
定時(shí)電路28接收該時(shí)鐘信號(hào),接著經(jīng)過定時(shí)控制總線38提供適當(dāng)?shù)亩〞r(shí)信號(hào)給每個(gè)CPU12,外部總線接口30和內(nèi)部存儲(chǔ)器32。
從外部總線接口30提供多個(gè)地址值給外部地址總線35。類似地,利用外部總線接口30經(jīng)過外部數(shù)據(jù)總線33傳送多個(gè)數(shù)據(jù)值。外部總線接口30控制外部用戶與數(shù)據(jù)處理系統(tǒng)10之間的地址和數(shù)據(jù)的接收及傳輸。外部總線接口30分別經(jīng)過內(nèi)部地址總線36和內(nèi)部數(shù)據(jù)總線34傳送多個(gè)地址和數(shù)據(jù)值給數(shù)據(jù)處理系統(tǒng)10的其余部分。
內(nèi)部存儲(chǔ)器32起著存儲(chǔ)數(shù)據(jù)處理系統(tǒng)10恰當(dāng)操作所需的信息值的作用。另外,如果在經(jīng)過內(nèi)部地址總線36和內(nèi)部數(shù)據(jù)總線34提供的用戶程序中規(guī)定了,也可在其中存儲(chǔ)其它的數(shù)據(jù)值。
CPU12執(zhí)行在數(shù)據(jù)處理系統(tǒng)10的操作期間要求的每個(gè)指令。內(nèi)部地址總線36和內(nèi)部數(shù)據(jù)總線34在數(shù)據(jù)處理系統(tǒng)10的執(zhí)行單元14與其它部分之間傳送信息??偩€控制邏輯電路16取出指令和操作數(shù)。然后每個(gè)指令由指令解碼邏輯電路18解碼并提供給控制單元20和順序器22。控制單元20和順序器22保持每個(gè)指令執(zhí)行的順序以便最有效地利用數(shù)據(jù)處理系統(tǒng)10的計(jì)算能力。另外,控制單元20包括一個(gè)微ROM存儲(chǔ)器(未示出),它經(jīng)過微RCM控制總線65提供多個(gè)控制信息給每個(gè)執(zhí)行單元14、總線控制邏輯16和指令解碼邏輯電路18。對(duì)于恰當(dāng)?shù)膱?zhí)行REVW指令,多個(gè)控制信息是需要的。
圖3更詳細(xì)地示出執(zhí)行單元14。執(zhí)行單元14一般包括一個(gè)數(shù)據(jù)緩沖器40、第一選擇器42、一個(gè)變址寄存器43、第二選擇器44、一個(gè)寄存器交換(Swap)邏輯電路46、一個(gè)條件碼邏輯電路47、一個(gè)A輸入控制電路48、第三選擇器49、一個(gè)A輸入復(fù)用器50、第四選擇器51、一個(gè)算法邏輯單元(ALU)52、一個(gè)B輸入控制電路54、一個(gè)B輸入復(fù)用器56、一個(gè)累加器58、一個(gè)條件碼寄存器60、一個(gè)比較器72和一個(gè)地址緩沖器45。除了累加器58和條件碼寄存器60之外,在執(zhí)行單元14中,可用其它的存儲(chǔ)寄存器,諸如變址寄存器X43和變址寄存器Y53,還可包括第二累加器。
外部信息總線41提供地址和數(shù)據(jù)信息給數(shù)據(jù)緩中器40。外部信息總線41分別以內(nèi)部地址總線36和內(nèi)部數(shù)據(jù)總線34接收地址和數(shù)據(jù)信息。當(dāng)選擇器42和42分別被啟動(dòng)而允許傳送信息時(shí),數(shù)據(jù)緩沖器40經(jīng)過信息總線A66和信息總線B64提供經(jīng)過外部信息總線41傳送的值給執(zhí)行單元14。雖然這里沒有詳細(xì)地表示出,但是信息總線A66和信息總線B64都是16比特寬,并且分為一個(gè)高側(cè)(比特15至比特8)和一個(gè)低側(cè)(比特7至比特0)。另外,數(shù)據(jù)緩沖器40提供地址信息給比較器72。地址緩沖器75接收從變址寄存器Y53所加的加權(quán)的地址,或者接收從數(shù)據(jù)緩沖器40提供的模糊輸入或輸出的地址。
累加器58的第一和第二輸入端分別雙向地連接信息總線A66和信息總線B64。附加的變址寄存器X43和變址寄存器Y53類似地接收信息總線A66和信息總線B64。
多個(gè)控制信號(hào)經(jīng)過微ROM控制總線65提供給A輸入控制邏輯電路48和B輸入控制邏輯電路54。微ROM控制總線65響應(yīng)由控制單元20中的微ROM存儲(chǔ)器(未示出)提供的信息提供多個(gè)控制信號(hào)。
A輸入控制電路48提供“控制A”信號(hào)給A輸入復(fù)用器50的控制輸入端。信息總線A66連接列A輸入復(fù)用器50的數(shù)據(jù)輸入端。A輸入復(fù)用器50提供標(biāo)注“A輸入低側(cè)”和前10比特輸出給ALU52的第一輸入端,和提供標(biāo)注“A輸入高側(cè)”的第二10比特輸出給ALU52的第二輸入端。B輸入控制電路54提供“控制B”信號(hào)給B輸入復(fù)用器56的控制輸入端。信息總線B64接到B輸入復(fù)用器56的數(shù)據(jù)輸入端。B輸入復(fù)用器56提供標(biāo)注“B輸入低側(cè)”的前10比特輸出給ALU52的第三輸入端,和提供標(biāo)注“B輸入高側(cè)”的第二10比特輸出給ALU52的第四輸入端。
ALU52處理每個(gè)輸入提供經(jīng)過結(jié)果總線120傳送的多個(gè)結(jié)果。結(jié)果總線120提供由ALU52提供的結(jié)果給寄存器交換邏輯電路46和條件碼邏輯電路47。另外,結(jié)果總線120提供多個(gè)結(jié)果給信息總線B64。
條件碼邏輯電路47也耦合到比較器72,以便接收觸發(fā)信號(hào)(toggle signal)。條件碼邏輯電路47耦合到條件碼寄存器60,以提供“條件碼”信號(hào)。
條件碼寄存器60提供VCCR信號(hào)給寄存器交換邏輯電路46和提供CCCR信號(hào)給寄存器變換邏輯電路46的第三控制輸入端。另外,定時(shí)控制信號(hào)提供給寄存器交換邏輯電路46的第一控制輸入端。該定時(shí)控制信號(hào)是經(jīng)過定時(shí)控制總線38提供的。寄存器交換邏輯電路46提供分別標(biāo)注“啟動(dòng)A”和“啟動(dòng)B”的第一和第二輸出,并提供分別標(biāo)注“啟動(dòng)C”和“啟動(dòng)D”的第三和第四輸出。啟動(dòng)A信號(hào)提供給選擇器42的第一控制輸入端。信息總線A66雙向地接到選擇器42。選擇器42的輸出端接到數(shù)據(jù)緩沖器40以傳送多個(gè)選擇的信號(hào)。類似地,啟動(dòng)B信號(hào)提供給選擇器44的第一輸入端。信息總線B64雙向地接到選擇器44。選擇器44的輸出接到數(shù)據(jù)緩沖器40以便傳送第二組多個(gè)選擇的信號(hào)。啟動(dòng)信號(hào)C提供給選擇器49的第一控制輸入端。信息總線A66雙向接到選擇器49和地址緩沖器48以便傳送選擇加權(quán)的地址。類似地,啟動(dòng)C信號(hào)提供給選擇器51的第一控制輸入端。信息總線B64雙向地接到選擇器51以傳送選擇加權(quán)的地址。
圖4更詳細(xì)地示出寄存器交換邏輯電路46。一般地,寄存器交換邏輯電路46包括“與”門62、70、74及76,和反相器68及73。“與”門62具有第一輸入端,用于接收信號(hào)VCCR,第二輸入端,用于接收定時(shí)控制信號(hào),第三輸入端,用于接收來自ALU52經(jīng)過結(jié)果總線120的標(biāo)注“N”的信號(hào),和一個(gè)輸出端,用于提供信號(hào)“啟動(dòng)A”。反相器68具有一個(gè)輸入端,用于接收信號(hào)VCCR,和一個(gè)輸出端?!芭c”門70具有接到反相器68的輸出端的第一輸入端,用于接收定時(shí)控制信號(hào)的第二輸入端,用于接收從ALU52經(jīng)過結(jié)果總線120的標(biāo)注“N”的信號(hào)的第三輸入端,和用于提供信號(hào)“啟動(dòng)B”的輸出端。反相器73有用于接收信號(hào)VCCR的一個(gè)輸入端和一個(gè)輸出端?!芭c”門74有用于接收信號(hào)CCCR的第一輸入端,用于接收定時(shí)控制信號(hào)的第二輸入端,連接到反相器68的輸出端的第三輸入端,和用于提供信號(hào)“啟動(dòng)C”的一個(gè)輸出端?!芭c”門76有用于接收信號(hào)VCCR的第一輸入端,用于接收定時(shí)控制信號(hào)的第二輸入端,連接到反相器73的輸出端的第三輸入端,和用于提供信號(hào)“啟動(dòng)D”的一個(gè)輸出端。
在執(zhí)行模糊邏輯運(yùn)算期間,數(shù)據(jù)處理系統(tǒng)10的用戶可使用指令REVW(加權(quán)的規(guī)則評(píng)定)以對(duì)模糊輸入執(zhí)行規(guī)則評(píng)定步驟。如前所述,模糊輸入作為模糊步驟的結(jié)果提供,其中一個(gè)系統(tǒng)輸入信號(hào)指定一個(gè)隸屬程度給多個(gè)規(guī)定的隸屬集的每個(gè)隸屬集。在這里所述的本發(fā)明的實(shí)施例中,在執(zhí)行REVW指令前,指定給模糊輸入的每個(gè)隸屬程度存儲(chǔ)在數(shù)據(jù)處理系統(tǒng)10內(nèi)部存儲(chǔ)器32中的預(yù)定存儲(chǔ)單元中。在美國(guó)專利5295229、名稱為“在模糊邏輯運(yùn)算期間確定在一集中的隸屬的電路和方法”中以及在J.Greg Viot的交叉參考未決專用申請(qǐng)序號(hào)No._________、名稱為“執(zhí)行有效的模糊邏輯運(yùn)算的數(shù)據(jù)處理系統(tǒng)及其方法”中更詳細(xì)地分開了指定給多個(gè)模糊輸入的每個(gè)隸屬程度。
在這里敘述的例子中,假定在第一和第二系統(tǒng)輸入的模糊期間使用兩組隸屬集。這兩組的第一組提供溫度測(cè)量,它們被分為冷、涼、暖和熱隸屬集。在模糊時(shí),在涼隸屬集中的第一系統(tǒng)輸入的隸屬程度是指使用標(biāo)注T涼的一個(gè)變量。類似地,在每個(gè)冷、暖和熱隸屬集的第一系統(tǒng)輸入的隸屬程度指語言變量T冷、T暖和T熱的相應(yīng)一個(gè)。
這兩組的第二組提供壓力測(cè)量,它們分為輕、中和重隸屬集。在模糊時(shí),輕、中和重隸屬集中的第二系統(tǒng)輸入的隸屬程度指使用分別標(biāo)注P輕、P中和P重的語言變量之一。在系統(tǒng)輸入已被模糊之后,在每個(gè)相應(yīng)隸屬集中的第一和第二系統(tǒng)輸入的隸屬程度存儲(chǔ)在存儲(chǔ)器中的預(yù)定單元中。另外,必須評(píng)定規(guī)則以提供適當(dāng)?shù)膭?dòng)作。在這個(gè)例子中假定被評(píng)定的三個(gè)規(guī)則具有以下形式(1)規(guī)則1如果溫度是涼(T涼)和壓力是輕(P輕),則(動(dòng)作1)和(動(dòng)作2);(2)規(guī)則2如果溫度是“暖”(T喛和)和壓力是中(P中),則(動(dòng)作3);和(3)規(guī)則3如果壓力是中(P中),則(動(dòng)作3)。注意,每個(gè)規(guī)則具有一個(gè)形式,該形式典型地有形式(4)如果(模糊輸入1)和(模糊輸入2),則(動(dòng)作X)和(動(dòng)作Y)。
在規(guī)則評(píng)定期間,首先評(píng)定該規(guī)則的“如果”部分以確定最小隸屬程度值。該規(guī)則的“如果”部分包括模糊輸入1值和模糊輸入2值。確定規(guī)則強(qiáng)度的普通方法是確定評(píng)定的模糊輸入的最小隸屬程度。但是確實(shí)存在其它的實(shí)施例。例如,規(guī)則的強(qiáng)度可作為其每個(gè)前項(xiàng)的隸屬程度的和計(jì)算。類似地,隸屬程度可被乘或以任何計(jì)算型式運(yùn)算以確定規(guī)則強(qiáng)度。
在這個(gè)實(shí)施例中,該規(guī)則的強(qiáng)度僅與最弱分量一樣強(qiáng)。最弱的隸屬程度值用于確定在該規(guī)則的“則”部分中規(guī)定的每個(gè)動(dòng)作的規(guī)則強(qiáng)度值。在形式(4)中所示的規(guī)則中,相應(yīng)于最小的模糊輸入1和模糊輸入2值的規(guī)則強(qiáng)度分別存儲(chǔ)在由動(dòng)作X和動(dòng)作Y值的地址所指的內(nèi)部存儲(chǔ)器32的第一和第二地址位置中。相應(yīng)于多個(gè)動(dòng)作值的預(yù)定值的每個(gè)規(guī)則強(qiáng)度用于提供相應(yīng)于一個(gè)相應(yīng)動(dòng)作的一個(gè)模糊輸出值。然后,可解模糊該模糊輸出值以執(zhí)行由用戶規(guī)定的運(yùn)算。雖然在形式(4)中只提供兩個(gè)模糊輸入值和兩個(gè)動(dòng)作值,但可提供更多或更少的值。數(shù)據(jù)處理系統(tǒng)10的用戶確定該規(guī)定的形式和可提供任何數(shù)量的模糊輸入或被執(zhí)行的動(dòng)作。
另外,當(dāng)評(píng)定一個(gè)以上的規(guī)則時(shí),存在著一個(gè)動(dòng)作被指定一個(gè)以上的規(guī)則強(qiáng)度的可能性。在這個(gè)情況下,具有較大值的規(guī)則強(qiáng)度應(yīng)指定給該動(dòng)作。因此,該動(dòng)作被指定一個(gè)最大值的規(guī)則強(qiáng)度。
根據(jù)本發(fā)明,數(shù)據(jù)處理系統(tǒng)10還響應(yīng)REVW指令加權(quán)該規(guī)則強(qiáng)度。數(shù)據(jù)處理系統(tǒng)10通過乘該規(guī)則強(qiáng)度加權(quán)該規(guī)則強(qiáng)度,該規(guī)則強(qiáng)度通過將這個(gè)最小值乘以加權(quán)獲得作為最小模糊輸入。公式5和6以算術(shù)公式敘述加權(quán)的規(guī)則評(píng)定運(yùn)算,式中“W1”和“W2”分別表示用于評(píng)定動(dòng)作X和動(dòng)作Y的模糊輸出的加權(quán)。
(5)MAX([MIN(模糊輸入1,模糊輸入2)]·W1,動(dòng)作X)(6)MAX([MIN(模糊輸入1,模糊輸入2)]·W2,動(dòng)作Y),然后數(shù)據(jù)處理系統(tǒng)10存儲(chǔ)這些最大值作為動(dòng)作X和Y的結(jié)果值。
在這里敘述的本發(fā)明的實(shí)施例中,內(nèi)部存儲(chǔ)器32一般用于存儲(chǔ)器存儲(chǔ)。但是,也可使用數(shù)據(jù)處理系統(tǒng)10外部的其它存儲(chǔ)電路(未示出)。這種外部處理存儲(chǔ)電路的實(shí)現(xiàn)和使用在數(shù)據(jù)處理技術(shù)中是眾所周知的,而且本領(lǐng)域的普通技術(shù)人員是清楚的。在這個(gè)實(shí)施例中,每個(gè)模糊輸入以下列形式存儲(chǔ)在內(nèi)部存儲(chǔ)器32中
陣列1如陣列1所示的,對(duì)于兩個(gè)系統(tǒng)輸入溫度和壓力,以“模糊輸入”表示的隸屬程度提供給每個(gè)系統(tǒng)輸入的每個(gè)隸屬集。如前面參照?qǐng)D1所敘述的,第一系統(tǒng)輸入是58華氏度的溫度。58華氏度的溫度被模糊具有在冷和熱隸屬集中的隸屬程度$00、在涼隸屬集中的隸屬程度$33、和在暖隸屬集中隸屬程度$CC。如陣列1所示的,T冷和T熱變量的值為$00,這指示第一系統(tǒng)輸入不在這兩個(gè)隸屬集的任一集中。但是,第一系統(tǒng)輸入是有值$33的T冷和值$CC的T暖。因此,在該冷隸屬集中第一輸入的確是有隸屬程度$33,即在暖和隸屬集中具有隸屬程度$CC。
類似地,第二輸入被模糊以指示在輕和重壓力隸屬集二者中的隸屬程度$00。因此,P輕和P重變量值為$00,這指示第二輸入不包括在這兩個(gè)隸屬集的任一集中。但是,在中間隸屬集中第二輸入的確具有隸屬程度$FF。因此,P中變量具有一個(gè)值$FF。
和模糊輸入一樣,被評(píng)定的每個(gè)規(guī)則(規(guī)則1至規(guī)則3)也存儲(chǔ)在內(nèi)部存儲(chǔ)器32的規(guī)則陣列中。該規(guī)則陣列示于圖5中。對(duì)于每個(gè)規(guī)則,提供了模糊輸入和模糊輸出二者的地址位置。模糊輸入和模糊輸出的地址以圖5的形式被存儲(chǔ)并查閱數(shù)據(jù)值的表,如前面陣列1中所示的。和模糊輸入一樣,相應(yīng)于模糊輸出的數(shù)據(jù)值表也在陣列中提供,這里未具體地示出。
規(guī)則陣列的開始位于由數(shù)據(jù)處理系統(tǒng)10的用戶規(guī)定的預(yù)定地址。在這里所述的例子中和圖5中所示的,預(yù)定地址等于$E000并在執(zhí)行REVW指令之前存儲(chǔ)在變址寄存器中。規(guī)則1的模糊輸入的第一輸入的地址位于十六進(jìn)制地址$E000,即該規(guī)則庫的開始。在這個(gè)例子中,T涼是規(guī)則1的第一模糊輸入,即地址$1001存儲(chǔ)在規(guī)則陣列的地址$E000。因?yàn)镻輕值是規(guī)則1的第二模糊輸入,地址$1004存儲(chǔ)在地址$E002的規(guī)則陣列中。
為了從模糊輸出中分離出模糊輸入,具有值$FFFE的緩沖器存儲(chǔ)在地址$E004的規(guī)則陣列中。隨后,利用具有值$FFFE的緩沖器從規(guī)則2的模糊輸入中分離出規(guī)則1的模糊輸出。利用具有值$FFFE的緩沖器從任何數(shù)量的模糊輸出中分離出任何數(shù)量的模糊輸入的這個(gè)格式被重復(fù),直到多個(gè)規(guī)則的每個(gè)模糊輸入和輸出被存儲(chǔ)在存儲(chǔ)器中為止。在相同規(guī)則中從模糊輸出中分離該模糊輸入的每個(gè)緩沖器值$FFFE觸發(fā)那個(gè)規(guī)則的加權(quán)過程。這時(shí),一個(gè)特別的緩沖器值指示規(guī)則庫的結(jié)束。在這里所示的例子中,規(guī)則庫的結(jié)束以值$FFFF表示。雖然使用相同的緩沖器值從每個(gè)規(guī)則的模糊輸出中分離出模糊輸入,數(shù)據(jù)處理系統(tǒng)10的設(shè)計(jì)者可使用任何數(shù)量的緩沖器。
以這樣的順序替代每個(gè)規(guī)則的每個(gè)模糊輸入和輸出,使用緩沖器地址作為每個(gè)模糊輸入和輸出部分之間劃分的批示符可順序地評(píng)定每個(gè)規(guī)則。因此,這些規(guī)定不必遵照具有特別數(shù)量的模糊輸入和模糊輸出(動(dòng)作)的固定格式。這允許提供模糊系統(tǒng)的規(guī)則的更大的靈活性。如在規(guī)則1、規(guī)則2和規(guī)則3[(1),(2)和(3)]中可看到的,在本發(fā)明的目前實(shí)施例中,模糊輸入和相應(yīng)動(dòng)作的數(shù)目可從一個(gè)規(guī)則到另一個(gè)規(guī)則地變化。
為了開始執(zhí)行REVW指令,該規(guī)則的每個(gè)模糊輸入和輸出必須存儲(chǔ)在具有圖5所示的預(yù)定格式的規(guī)則陣列的存儲(chǔ)器。而如果規(guī)則是加權(quán)的,則每個(gè)規(guī)則的加權(quán)值必須存儲(chǔ)在加權(quán)陣列的存儲(chǔ)器中。另外,該規(guī)則陣列的開始地址必須存儲(chǔ)在變址寄存器X43中,累加器58必須以十六進(jìn)制值$FF初始化,和在執(zhí)行REVW指令之前,如果采用規(guī)則加權(quán),變址寄存器Y53必須以加權(quán)陣列的開始地址初始化。另外,在執(zhí)行REVW指令之前,每個(gè)模糊輸出必須指定一個(gè)十六進(jìn)制值$00。REVW指令的執(zhí)行則可根據(jù)圖6所示的流程圖進(jìn)行。該流程圖提供在執(zhí)行REVW指令期間執(zhí)行的每個(gè)功能的簡(jiǎn)單概況。要執(zhí)行REVW指令的例子的過程期間更詳細(xì)地說明每個(gè)功能。
如圖6中所示的,在REVW指令被解碼時(shí)進(jìn)行REVW指令執(zhí)行的第一步。然后使用稱為“X”的、存儲(chǔ)在變址寄存器中的地址取出第一規(guī)則操作數(shù)。然后遞增地址X指在下一個(gè)地址位置(X+2)。
然后檢測(cè)第一規(guī)則操作數(shù)的值確定該值是否等于十六進(jìn)制$FFFE。如果等于十六進(jìn)制$FFFE,則觸發(fā)VCCR信號(hào)以指示緩沖器值被檢索到。如果在觸發(fā)后VCCR信號(hào)等于0,則規(guī)則的第一模糊輸入被評(píng)定和累加器58應(yīng)該初始化為十六進(jìn)制值$FF。否則,累加器58的值不改變。
如果第一規(guī)則操作數(shù)的值不等于$FFFE,則檢測(cè)該值以確定是否它等于十六進(jìn)制$FFFF。如果該值等于十六進(jìn)制$FFFF,已存取了該規(guī)則陣列的末尾,REVW指令終止。
如果第一規(guī)則操作數(shù)的值不等于$FFFF,則使用第一規(guī)則操作數(shù)的值從內(nèi)部存儲(chǔ)器32存取模糊輸入或輸出值。然后從該模糊輸入或輸出值減去累加器58的內(nèi)容提供有符號(hào)的結(jié)果。該結(jié)果的符號(hào)以N信號(hào)的值指示。
如果N信號(hào)等于0,則累加器58和數(shù)據(jù)緩沖器40二者的內(nèi)容不應(yīng)交換和存儲(chǔ)在變化寄存器中的地址存取下一個(gè)規(guī)則操作數(shù)。但是,如果N信號(hào)等于1,則檢測(cè)VCCR信號(hào)。
如果VCCR信號(hào)等于0,則累加器58的內(nèi)容應(yīng)該以由第一規(guī)則操作數(shù)存取的模糊輸入值的值代替。因此,使用最小函數(shù)確定規(guī)則強(qiáng)度,該規(guī)則強(qiáng)度指定給目前評(píng)定的規(guī)則的模糊輸出。接著,使用存儲(chǔ)在變址寄存器中的地址存取下一個(gè)規(guī)則操作數(shù)。
如果VCCR信號(hào)等于1,則數(shù)據(jù)緩沖器40的內(nèi)容應(yīng)該以累加器58中的較強(qiáng)的規(guī)則強(qiáng)度代替,因此,最大的規(guī)則強(qiáng)度指定給目前評(píng)定的模糊輸出。接著,使用存儲(chǔ)在變址寄存器中的地址存取下一個(gè)規(guī)則操作數(shù)。
圖6所示的流程圖提供在數(shù)據(jù)處理系統(tǒng)10中執(zhí)行REVW指令的概況。現(xiàn)在給出更詳細(xì)的例子。
REVW指令的基本操作如下從存儲(chǔ)器中檢索每個(gè)前項(xiàng)值和確定由加權(quán)值影響的最小前項(xiàng)值;然后,檢索每個(gè)隨后的值,與規(guī)則強(qiáng)度值比較,如果而且僅僅如果預(yù)存在的隨后的值小于該規(guī)則強(qiáng)度值,在存儲(chǔ)器中以那個(gè)規(guī)則強(qiáng)度值代替。
如前所述,在執(zhí)行REVW指令前,多個(gè)模糊輸入由數(shù)據(jù)處理系統(tǒng)10的用戶存儲(chǔ)在內(nèi)部存儲(chǔ)器32的第一預(yù)定存儲(chǔ)單元中。根據(jù)陣列1存儲(chǔ)多個(gè)模糊輸入。另外,用于評(píng)定多個(gè)模糊輸入的每個(gè)規(guī)則也以圖5中所示的形式存儲(chǔ)在內(nèi)部存儲(chǔ)器32中的第二預(yù)定存儲(chǔ)單元。加權(quán)值也以地址可從變址寄存器Y53尋址的順序形式存儲(chǔ)在存儲(chǔ)器中。雖然這里未詳細(xì)地表示出,相應(yīng)于該模糊輸入的每個(gè)規(guī)則強(qiáng)度值也以類似于陣列1的陣列存儲(chǔ)在內(nèi)部存儲(chǔ)器32的開始地址$2000。另外,在執(zhí)行REVW指令前,數(shù)據(jù)處理系統(tǒng)10的用戶也必須給所有的模糊輸出值指定十六進(jìn)制值$00。另外,在執(zhí)行REVW指令前,數(shù)據(jù)處理系統(tǒng)10的用戶必須初始化累加器58為十六進(jìn)制值$FF。如前所述,當(dāng)累加器58被初始化為$FF,VCCR信號(hào)被否定。
在操作期間,用戶可通過外部存儲(chǔ)的或存儲(chǔ)在內(nèi)部存儲(chǔ)器32中的軟件程序提供REVW指令給數(shù)據(jù)處理系統(tǒng)10。如果由數(shù)據(jù)處理系統(tǒng)10外部的信源提供該REVW指令,則該REVW指令可經(jīng)過外部數(shù)據(jù)總線33輸入到外部總線接口30。接著外部總線接口30經(jīng)過內(nèi)部數(shù)據(jù)總線34提供REVW指令給CPU12。如果由內(nèi)部存儲(chǔ)器32中的軟件程序提供REVW指令,則該REVW指令將經(jīng)過內(nèi)部數(shù)據(jù)總線34提供給CPU12。在CPU12中,執(zhí)行單元14響應(yīng)從每個(gè)總線控制邏輯電路16、控制單元20和順序器22收到的控制信號(hào)將提供REVW指令給指令解碼邏輯電路18。另外,CPU12的每個(gè)部件經(jīng)過定時(shí)控制總線38接收定時(shí)控制信號(hào)。這種定時(shí)控制信號(hào)的路由和使用在數(shù)據(jù)處理技術(shù)中是眾所周知的,因此這里不詳細(xì)地討論。
指令解碼邏輯電路18解碼該REVW指令,提供恰當(dāng)執(zhí)行REVW指令需要的多個(gè)控制與信息信號(hào)。在接收和解碼REVW指令時(shí),執(zhí)行單元14開始評(píng)定存儲(chǔ)在內(nèi)部存儲(chǔ)器32中的多個(gè)模糊輸入所需的步驟。圖2中CPU12的控制單元20和順序器22一起從內(nèi)部存儲(chǔ)器32向執(zhí)行單元14提供一系列順序控制信號(hào),這些信號(hào)是傳送指示符到模糊輸入和模糊輸出二者的地址所需要的。
為了開始執(zhí)行REVW指令,執(zhí)行單元144的變址寄存器X43提供一個(gè)指示符到該規(guī)則庫的開始。變址寄存器和它們?cè)跀?shù)據(jù)處理系統(tǒng)中的使用在數(shù)據(jù)處理技術(shù)中是公知的,因此,這里不再詳細(xì)說明。該指示符指在內(nèi)部存儲(chǔ)器32中的規(guī)則庫的開始地址,“涼”溫度隸屬集中的第一輸入的隸屬程度存儲(chǔ)在該地址。該地址指示存儲(chǔ)規(guī)則1的第一模糊輸入值的地址。在這里敘述的例子中,十六進(jìn)制地址$1001存儲(chǔ)在內(nèi)部存儲(chǔ)器32中的地址$E000。
當(dāng)從規(guī)則陣列存取規(guī)則1的第一模糊輸入值的地址時(shí),該地址經(jīng)過外部信息總線41提供給數(shù)據(jù)緩沖器40。接著數(shù)據(jù)緩沖器40提供該地址值給比較器72,在這里該地址值與十六進(jìn)制值$FFFE比較。如果該地址值等于$FFFE,則指向緩沖器地址并且應(yīng)該觸發(fā)VCCR比特。傳統(tǒng)地,使用VCCR比特指示符號(hào)運(yùn)算計(jì)算中的溢出差錯(cuò)。但是,在本發(fā)明的這個(gè)實(shí)施例中,設(shè)定條件碼寄存器中的溢出比特(VCCR)指示存取的地址是相應(yīng)于模糊輸入地址、緩沖器地址或模糊輸出地址。在存取相應(yīng)于第一規(guī)則的模糊輸入的地址時(shí),VCCR比特保持否定。如果存取的地址是緩沖器值,則觸發(fā)VCCR比特。在這里所述的例子中,緩沖器值等于十六進(jìn)制值$FFFE。另外,在存取模糊輸出的地址時(shí),VCCR比特仍然被認(rèn)定。
在該地址值等于$FFFE時(shí),比較器72認(rèn)定該觸發(fā)信號(hào)。條件碼邏輯電路47接收該觸發(fā)信號(hào),接著提供認(rèn)定的條件碼信號(hào)給條件碼寄存器60。反過來,因此條件碼寄存器60認(rèn)定或否定VCCR信號(hào)。如果信號(hào)VCCR和CCCR二者被認(rèn)定,則變址寄存器Y53提供被取出的、在加權(quán)值的存儲(chǔ)器中的一個(gè)地址。加權(quán)值乘最小模糊邏輯輸入以影響模糊邏輯輸出。
在這里敘述的例子中,從地址$E000存取地址值$1001,地址$E000是規(guī)則陣列中規(guī)則1的第一模糊輸入值的地址。因?yàn)?1001不等于$FFFE,所以比較器72不認(rèn)定該觸發(fā)信號(hào)。因此,由條件碼邏輯電路47提供的條件碼信號(hào)不啟動(dòng)條件碼寄存器60觸發(fā)VCCR信號(hào)。
比較器72還比較規(guī)則1的第一模糊輸入的地址值與十六進(jìn)制值$FFFF。如果該地址值等于$FFFF,則指向規(guī)則陣列地址的末尾并且終止REVW指令的執(zhí)行。
另外,在從內(nèi)部存儲(chǔ)器32存取地址$1001時(shí),提供“涼”溫度隸屬集中的第一系統(tǒng)輸入的隸屬程度。如陣列1中所示的,該隸屬程度等于十六進(jìn)制值$33。內(nèi)部存儲(chǔ)器32經(jīng)過內(nèi)部數(shù)據(jù)總線提供該信息給執(zhí)行單元14的數(shù)據(jù)緩沖器40。外部信息總線41提供經(jīng)過內(nèi)部地址總線36和內(nèi)部數(shù)據(jù)總線34傳送的信息。
在數(shù)據(jù)緩沖器40中存儲(chǔ)第一模糊輸入($33)用于隨后處理。為了確定規(guī)則1前項(xiàng)的最小隸屬程度,累加器58的目前內(nèi)容($FF)從第一模糊輸入($33)中減去。為了執(zhí)行這個(gè)功能,累加器58的內(nèi)容提供信息總線A66和數(shù)據(jù)緩沖器40的內(nèi)容提供給信息總線B64。另外,多個(gè)控制和定時(shí)信號(hào)經(jīng)過微ROM控制總線65提供給執(zhí)行單元14。多個(gè)控制和定時(shí)信號(hào)由圖2的指令解碼邏輯電路18提供作為解碼REVW指令的結(jié)果。
在執(zhí)行單元14中,第一模糊輸入提供給A輸入復(fù)用器50和累加器58的內(nèi)容在根據(jù)經(jīng)過微ROM控制總線65傳送的定時(shí)信號(hào)確定的時(shí)間點(diǎn)提供給B復(fù)用器56。B輸入控制電路54提供“控制B”信號(hào)到B輸入復(fù)用器56的控制操作。在這個(gè)例子中,控制B信號(hào)允許B輸入復(fù)用器56傳送未改變的第一模糊輸入值到ALU52。類似地,A輸入控制電路54提供“控制A”信號(hào)輸入復(fù)用器50。控制A信號(hào)允許A輸入復(fù)用器50否定累加器58的內(nèi)容,使得從ALU52中的第一模糊輸入中減去該內(nèi)容。
在接收第一模糊輸入和否定的累加器內(nèi)容值時(shí),ALU52從第一模糊輸入($33)減去累加器58的內(nèi)容($FF)提供該結(jié)果。該結(jié)果是一個(gè)負(fù)數(shù)($33-$FF=$CC)和N信號(hào)被認(rèn)定。認(rèn)定的N信號(hào)經(jīng)過結(jié)果總線120傳送。如果該結(jié)果是正的,則N標(biāo)記未被設(shè)定并且已經(jīng)過結(jié)果總線120提供否定的N符號(hào)。減法運(yùn)算的數(shù)字結(jié)果不要求,因此,在隨后的運(yùn)算期間被寫入。
寄存器交換邏輯電路46允許用戶確定規(guī)則折每個(gè)模糊輸入中的最小隸屬程度。這時(shí),累加器58的內(nèi)容乘以選擇的加權(quán)值。然后加權(quán)值的結(jié)果用作由該規(guī)則規(guī)定的每個(gè)動(dòng)作的規(guī)則強(qiáng)度。在運(yùn)算期間,取決于VCCR和N信號(hào)的值,寄存器交換邏輯電路46可以或可不轉(zhuǎn)換累加器58和數(shù)據(jù)緩沖器40的內(nèi)容。
寄存器交換邏輯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)仍然被否定,另外,ALU52提供N信號(hào),指示從數(shù)據(jù)緩沖器40的內(nèi)容中減去累加器58的內(nèi)容的結(jié)果是正或者負(fù)。如果累加器58的內(nèi)容大于存儲(chǔ)在數(shù)據(jù)緩沖器40中的第一模糊輸入,則認(rèn)定N信號(hào)指示負(fù)的結(jié)果。相反地,如果第一模糊輸入小于累加器58的內(nèi)容,則仍然否定N信號(hào),指示正的結(jié)果。在由定時(shí)電路28確定的恰當(dāng)時(shí)間,認(rèn)定定時(shí)控制信號(hào)以啟動(dòng)寄存器交換邏輯電路46或者傳送累加器58的內(nèi)容到數(shù)據(jù)緩沖器40、傳送數(shù)據(jù)緩沖器40的內(nèi)容到累加器58或者使累加器58和數(shù)據(jù)緩沖器40二者的內(nèi)容仍然相同。
寄存器交換邏輯電路46(圖4)也接收加“與”門74的信號(hào)CCCR。加上負(fù)信號(hào)CCCR以便選通”與“門76?!芭c”門74的輸出信號(hào)啟動(dòng)C在進(jìn)行加權(quán)運(yùn)算時(shí)被認(rèn)定。在不進(jìn)行加權(quán)時(shí)從“與”門76輸出的信號(hào)啟動(dòng)D被認(rèn)定。
現(xiàn)在參見圖3,可看出啟動(dòng)C信號(hào)啟動(dòng)選擇器49使從變址寄存器Y53來的地址能被插入地址緩沖器45,在以上所述的由定時(shí)控制信號(hào)確定的適當(dāng)時(shí)間,地址緩沖器45從存儲(chǔ)器在來自變址寄存器Y53的地址取出加權(quán)值。然后所取出的加權(quán)值用于乘累加器58的內(nèi)容。如果啟動(dòng)D信號(hào),則地址緩沖器45不能進(jìn)入,因此從存儲(chǔ)器沒有檢索到任何加權(quán)值。
在評(píng)定規(guī)則1的“如果”部分期間,當(dāng)從第一模糊輸入減去累加器58的內(nèi)容時(shí),產(chǎn)生負(fù)的結(jié)果($33-$FF=-$CC)。因此,仍然認(rèn)定N信號(hào)。另外,否定VCCR信號(hào)以指示模糊輸入正從內(nèi)部存儲(chǔ)器32中檢索出。當(dāng)認(rèn)定定時(shí)控制信號(hào)時(shí),“與”門62的輸出等于0和不認(rèn)定啟動(dòng)A信號(hào)。但是,認(rèn)定反相器68的輸出和啟動(dòng)“與”門70以認(rèn)定啟動(dòng)B信號(hào)。當(dāng)認(rèn)定啟動(dòng)B信號(hào)時(shí),啟動(dòng)選擇器44,從數(shù)據(jù)緩沖器40傳送數(shù)據(jù)到累加器58。在這時(shí)最小的隸屬程度為$33,并且存儲(chǔ)在累加器58中。
類似地,規(guī)則1的第二模糊輸入提供給數(shù)據(jù)緩沖器40。第二模糊輸入是第二系統(tǒng)輸入在輕壓力(P輕)隸屬集中的隸屬程度。在這個(gè)例子中,該隸屬程度為十六進(jìn)制值$00。而且,內(nèi)部存儲(chǔ)器32經(jīng)過外部信息總線41提供第二模糊輸入的隸屬程度給執(zhí)行單元14的數(shù)據(jù)緩沖器14。
為了確定最小隸屬程度,從第二模糊輸入減去第一模糊輸入。在執(zhí)行單元14中,在根據(jù)經(jīng)過微ROM控制總線65傳送的定時(shí)信號(hào)確定的時(shí)間點(diǎn),第一模糊輸入提供給A輸入復(fù)用器50和第二模糊輸入提供給B輸入復(fù)用器56。B輸入控制電路54提供“控制B”信號(hào)控制B輸入復(fù)用器56的操作。在這個(gè)例子中,控制B信號(hào)允許B輸入復(fù)用器56傳送未改變的第二模糊值給ALU52。類似地,A輸入控制電路54提供″控制A″信號(hào)給A輸入復(fù)用器50??刂艫信號(hào)允許A輸入復(fù)用器50否定第一模糊輸入,使得它可以從ALU52中的第二模糊輸入中減去。
在接收第二模糊輸入值和否定第一模糊輸入值時(shí),ALU52從第二模糊輸入值減去第一模糊輸入值再次提供負(fù)的結(jié)果。因此,認(rèn)定N信號(hào)。另外,否定VCCR信號(hào)指示正從內(nèi)部存儲(chǔ)器32中檢索模糊輸入。
當(dāng)認(rèn)定定時(shí)控制信號(hào)時(shí),“與”門62的輸出等于0和不認(rèn)定啟動(dòng)A信號(hào)。在這第一個(gè)例子中,“與”門70不認(rèn)定啟動(dòng)B信號(hào)。當(dāng)認(rèn)定啟動(dòng)B信號(hào)時(shí),啟動(dòng)選擇器44從數(shù)據(jù)緩沖器40傳遞數(shù)據(jù)到累加器58。因此,在這時(shí)最小隸屬程度為$00,并且存儲(chǔ)在累加器58中。
在規(guī)則1模糊輸入的存儲(chǔ)單元末尾,由比較器72識(shí)別緩沖器地址。比較器72提供認(rèn)定的觸發(fā)信號(hào)給條件碼邏輯電路47。然后條件碼邏輯電路47提供條件碼信號(hào)給條件碼寄存器,以便觸發(fā)條件碼寄存器60中的V比特,提供認(rèn)定的VCCR信號(hào)。如前所述,認(rèn)定VCCR信號(hào)以指示規(guī)則1的模糊輸出的地址是從內(nèi)部存儲(chǔ)器32中被檢索的下一個(gè)地址。在這里所述的例子中,在執(zhí)行REVW指令“則”部分期間,當(dāng)從內(nèi)部存儲(chǔ)器32檢索規(guī)則1的模糊輸出的地址時(shí)認(rèn)定VCCR信號(hào)。
當(dāng)選擇多個(gè)模糊輸出之一時(shí),執(zhí)行最大運(yùn)算。因此,對(duì)于REVW指令的“則”部分,認(rèn)定每個(gè)模糊輸出的最大規(guī)則程度。如前所述,應(yīng)該對(duì)每個(gè)模糊輸出指定最大規(guī)則強(qiáng)度。因此,作為REVW指令的“如果”部分執(zhí)行結(jié)果的、存儲(chǔ)在累加器58中的最小隸屬程度值與目前存儲(chǔ)在內(nèi)部存儲(chǔ)器32中的該模糊輸出地址的規(guī)則強(qiáng)度值比較。在執(zhí)行REVW指令的“則”部分期間,目前的規(guī)則強(qiáng)度值駐留在累加器58中。最大規(guī)則強(qiáng)度值總是存儲(chǔ)在內(nèi)部存儲(chǔ)器32中。如前所討論的最小隸屬程度值在REVW指令的第一部分中計(jì)算,在這里每個(gè)模糊輸入的隸屬程度進(jìn)行比較,如果希望的話,確定由加權(quán)值修改的最小值。如果這個(gè)加權(quán)值是D.累加器58中的產(chǎn)物為D,它對(duì)其模糊輸出無影響。實(shí)質(zhì)上,具有加權(quán)O的規(guī)則被“關(guān)斷”turned off)。
模糊輸入的最小值仍然在累加器58中。然后該規(guī)則陣列提供指向目前正在評(píng)定的規(guī)則模糊輸出的地址。在執(zhí)行單元14中的變址寄存器(未示出)遞增該指示符指到第一模糊輸出的地址。在這個(gè)例子中,指示符被遞增到地址$E006。在地址$E006,提供第一模糊輸出的地址即十六進(jìn)制地址$2000。因存在執(zhí)行REVW指令前,數(shù)據(jù)處理系統(tǒng)10的用戶給存儲(chǔ)在模糊輸出陣列中的所有數(shù)據(jù)值指定十六進(jìn)制值$00,當(dāng)存取地址$2000時(shí)內(nèi)部存儲(chǔ)器32提供十六進(jìn)制值$00。然后模糊輸出的值($00)經(jīng)過外部信息總線41提供給數(shù)據(jù)緩沖器40,模糊輸出值被存儲(chǔ)用于隨后的運(yùn)算。
為了確定最大規(guī)則強(qiáng)度值,從數(shù)據(jù)緩沖器40中減去累加器58的內(nèi)容確定哪個(gè)具有較大的值。換句話說,在規(guī)則評(píng)定步驟的“如果”部分期間計(jì)算的最小隸屬程度值乘以規(guī)則加權(quán)(如果使用加權(quán)),然后從目前存儲(chǔ)在規(guī)則1的第一模糊輸出的地址位置中的規(guī)則強(qiáng)度值中減去。為了執(zhí)行這個(gè)功能,累加器58的內(nèi)容提供給信息總線A66和數(shù)據(jù)緩沖器40的內(nèi)容提供給信息總線B64。另外,多個(gè)控制和定時(shí)信號(hào)經(jīng)過微ROM控制總線65提供給執(zhí)行單元14。由圖2的指令解碼邏輯電路18提供多個(gè)控制和定時(shí)信號(hào)作為解碼REVW指令的結(jié)果。
在執(zhí)行單元14中,在根據(jù)經(jīng)過微ROM控制總線65傳送的定時(shí)信號(hào)確定的時(shí)間點(diǎn),存儲(chǔ)在累加器58中的結(jié)果規(guī)則強(qiáng)度值提供給A輸入復(fù)用器50,而存儲(chǔ)在數(shù)據(jù)緩沖器40中的目前的模糊輸出值提供給B輸入復(fù)用器56。B輸入控制電路54提供控制B信號(hào)以控制B輸入復(fù)用器56的操作。在這個(gè)例子中,控制B信號(hào)允許B輸入復(fù)用器從內(nèi)部存儲(chǔ)器32傳送未改變的模糊輸出值到ALU52。類似地,A輸入控制電路48提供控制A信號(hào)給A輸入復(fù)用器50??刂艫信號(hào)啟動(dòng)A輸入復(fù)用器50否定用于在ALU52中的隨后的減運(yùn)算的累加器58的內(nèi)容。
在從A輸入復(fù)用器50和B輸入復(fù)用器56二者接收這些值時(shí),ALU52從存儲(chǔ)在相應(yīng)于規(guī)則1的第一模糊輸出的預(yù)定存儲(chǔ)單元的模糊輸出值中減去存儲(chǔ)在累加器58中的結(jié)果規(guī)則強(qiáng)度值。在這里所述的例子中,存儲(chǔ)在累加器58中的值具有十六進(jìn)制值$00。因?yàn)橐?guī)則1的每個(gè)模糊輸出被指定一個(gè)十六進(jìn)制值$00,所以由ALU52提供的結(jié)果為$00。因?yàn)樵摯鸢覆皇秦?fù)數(shù),N信號(hào)仍被否定,并且接著提供給寄存器交換邏輯電路46。
如前所討論的,條件碼寄存器60提供VCCR信號(hào)給寄存器交換邏輯電路46。另外,由外部信源、定時(shí)電路28提供定時(shí)控制信號(hào)給寄存器交換邏輯電路46。在收到每個(gè)VCCR、N和定時(shí)控制信號(hào)時(shí),寄存器交換邏輯電路46否定啟動(dòng)A和啟動(dòng)B信號(hào)。因此,選擇器42和44分別不啟動(dòng),而且不允許在數(shù)據(jù)緩沖器40和累加器58之間的數(shù)據(jù)傳送。因此,內(nèi)部存儲(chǔ)器32中的第一模糊輸出的規(guī)則強(qiáng)度不改變并且繼續(xù)具有十六進(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隨后被啟動(dòng)以否定啟動(dòng)A和啟動(dòng)B信號(hào)。因此,在評(píng)定規(guī)則1之后,每個(gè)規(guī)定的模糊輸出動(dòng)作1和動(dòng)作2的規(guī)則強(qiáng)度具有十六進(jìn)制值$00。
此外,在規(guī)則1的模糊輸出的存儲(chǔ)單元末尾,由比較器72識(shí)別緩沖器地址。比較器72提供認(rèn)定的觸發(fā)信號(hào)給條件碼邏輯電路47。條件碼邏輯電路47提供條件碼信號(hào)給條件碼寄存器,以便觸發(fā)條件碼寄存器60中的V比特提供一個(gè)否定的VCCR信號(hào)。如前所說明的,VCCR信號(hào)被否定以指示規(guī)則2的模糊輸入的地址是從內(nèi)部存儲(chǔ)器32中進(jìn)行檢索的下一個(gè)地址。在這里所述的例子中,在執(zhí)行REVW指令的“如果”部分期間,當(dāng)從內(nèi)部存儲(chǔ)器32中檢索規(guī)則2的模糊輸入的地址的否定VCCR信號(hào)。當(dāng)否定VCCR信號(hào)時(shí),累加器58的內(nèi)容再次初始化為值$FF。
繼續(xù)執(zhí)行REVW指令要求評(píng)定規(guī)則2。如前所說明的,控制單元20提供從內(nèi)部存儲(chǔ)30向執(zhí)行單元M傳送規(guī)則2的每個(gè)模糊輸入需要的一系列順序控制信號(hào)。在評(píng)定規(guī)則2期間,內(nèi)部存儲(chǔ)器32提供第一地址,在暖和溫度隸屬集中的第一系統(tǒng)輸入的隸屬程度存儲(chǔ)在其中。在這里敘述的例子中,該地址指向內(nèi)部存儲(chǔ)器32的十六進(jìn)制地址$1002。當(dāng)從內(nèi)部存儲(chǔ)器32存取地址$1002時(shí),具有十六進(jìn)制值$CC的隸屬程度經(jīng)過內(nèi)部數(shù)據(jù)總線34提供給數(shù)據(jù)緩沖器40。
因?yàn)樵谝?guī)則1評(píng)定期間,規(guī)則2的第一模糊輸入與累加器58的已初始化內(nèi)容比較。當(dāng)?shù)诙彌_器地址被識(shí)別時(shí),累加器58再次初始化為十六進(jìn)制值$FF。因此,根據(jù)前述的方法,最小值被檢測(cè)到和$CC存儲(chǔ)在累加器58中。
類似地,在地址緩沖器45的一個(gè)地址從存儲(chǔ)器提供規(guī)則2的第二模糊輸入提供給數(shù)據(jù)緩沖器40。第二模糊輸入是第二系統(tǒng)輸入在中等壓力隸屬集中的隸屬程度。在這個(gè)例子中,隸屬程度具有十六進(jìn)制值$FF。
為了確定最小隸屬程度,ALU52從第二模糊輸入減去第一模糊輸入提供正的結(jié)果$33。因?yàn)榻Y(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否定啟動(dòng)A和啟動(dòng)B信號(hào)。最小隸屬程度十六進(jìn)制值$CC仍然存儲(chǔ)在累加器58中。
在規(guī)則2的模糊輸入的存儲(chǔ)單元末尾,由比較器72識(shí)別緩沖器地址。比較器72提供認(rèn)定的觸發(fā)信號(hào)給條件碼邏輯電路47。然后條件碼邏輯電路47提供條件信號(hào)給條件碼寄存器,以便觸發(fā)條件碼寄存器60中的V比特,提供一個(gè)認(rèn)定的VCCR信號(hào)。如前所說明的,VCCR信號(hào)被否定以指示規(guī)則2的模糊輸出地址是從內(nèi)部存儲(chǔ)器32進(jìn)行檢索的下一個(gè)地址。如果認(rèn)定CCCR信號(hào),則累加器58的內(nèi)容用加權(quán)值改變,該加權(quán)值是在地址緩沖器45中從變址寄存器Y53開始的地址上從存儲(chǔ)器得到的。結(jié)果存回在累加器58中。
規(guī)則2的強(qiáng)度值保持在累加器58中。假定累加器58中的結(jié)果值是$66。然后從規(guī)則陣列提供目前正評(píng)定的模糊輸出。執(zhí)行單元14中的變址寄存器遞增指示符以指到第一模糊輸出的地址。在這個(gè)例子中,指示符遞增到地址$E01 2。在地址$E012,提供第一模糊輸出地址,即十六進(jìn)制地址$2002。因?yàn)樵趫?zhí)行REVW指令前,數(shù)據(jù)處理系統(tǒng)10的用戶給存儲(chǔ)在模糊輸出陣列中的所有數(shù)據(jù)值指定一個(gè)十六進(jìn)制值$00,當(dāng)存取地址$2002時(shí),內(nèi)部存儲(chǔ)器32提供十六進(jìn)制值$00。然后經(jīng)過外部信息總線41提供模糊輸出值($00)給數(shù)據(jù)緩沖器40,在這里存儲(chǔ)模糊輸出值用于隨后運(yùn)算。
然后ALU52從存儲(chǔ)在數(shù)據(jù)緩沖器40中的十六進(jìn)制值$00中減去存儲(chǔ)在累加器58中的十六進(jìn)制值$66。結(jié)果是負(fù)$66值并且認(rèn)定N信號(hào)。在每個(gè)N、VCCR和定時(shí)信號(hào)提供給寄存器交換邏輯電路46時(shí),寄存器交換邏輯電路46認(rèn)定啟動(dòng)A信號(hào)并且否定啟動(dòng)B信號(hào)。
當(dāng)認(rèn)定啟動(dòng)A信號(hào)時(shí),啟動(dòng)選擇器42以驅(qū)動(dòng)累加器58的內(nèi)容給數(shù)據(jù)緩沖器40。數(shù)據(jù)緩沖器40暫時(shí)地存儲(chǔ)由累加器58提供的先前規(guī)則強(qiáng)度值($66)作為最大的規(guī)則強(qiáng)度值。另外,數(shù)據(jù)緩沖器40傳送最大規(guī)則強(qiáng)度值給規(guī)則2的第一模糊輸出的地址位置($2002)。因此,值$66是在執(zhí)行REVW指令期間在這點(diǎn)上內(nèi)部存儲(chǔ)器32中地址$2002的動(dòng)作3目前規(guī)則強(qiáng)度值。
而且,在規(guī)則2模糊輸出的存儲(chǔ)單元末尾,由比較器72識(shí)別緩沖器地址。比較器72提供認(rèn)定觸發(fā)信號(hào)給條件碼邏輯電路47。條件碼邏輯電路47提供條件碼信號(hào)給條件碼寄存器,以便觸發(fā)條件碼寄存器60中V比特提供否定的VCCR信號(hào)。如前所說明的,VCCR信號(hào)被否定以指示規(guī)則3的模糊輸入的地址是內(nèi)部存儲(chǔ)器32進(jìn)行檢索的下一個(gè)地址。在這里敘述的例子中,在執(zhí)行REVW指令的“如果”部分期間,在從內(nèi)部存儲(chǔ)器32檢索規(guī)則3的模糊輸入的地址時(shí)否定VCCR信號(hào)。當(dāng)否定VCCR信號(hào)時(shí),累加器58的內(nèi)容再次初始化為值$FF。
繼續(xù)執(zhí)行REVW指令開始評(píng)定規(guī)則3。如前所說明的,CPU12的控制單元20提供從內(nèi)部存儲(chǔ)器32向執(zhí)行單元14傳送規(guī)則3的每個(gè)模糊輸入所需要的一系列順序控制信號(hào)。在評(píng)定規(guī)則3期間,內(nèi)部存儲(chǔ)器32提供第一地址,在中等壓力隸屬集中第二系統(tǒng)輸入的隸屬程度存儲(chǔ)在其中。在這里所述的例子中,該地址將指到內(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)容中減去,產(chǎn)生結(jié)果D。因?yàn)榻Y(jié)果不是負(fù)的,N信號(hào)不被認(rèn)定。因此,寄存器交換邏輯電路46信號(hào)不被認(rèn)定啟動(dòng)A信號(hào),也不認(rèn)定啟動(dòng)B信號(hào),而且信息不在數(shù)據(jù)緩沖器40和累加器58之間傳送。
在規(guī)則3的模糊輸入的存儲(chǔ)單元末尾,由比較器72識(shí)別緩沖器地址。比較器72提供認(rèn)定的觸發(fā)信號(hào)給條件碼邏輯電路47。然后條件碼邏輯電路47提供條件碼信號(hào)給條件碼寄存器60,以便觸發(fā)條件碼寄存器60中的V比特,而提供認(rèn)定的VCCR信號(hào)。如前所說明的,VCCR信號(hào)被認(rèn)定以指示規(guī)則3的模糊輸出的地址是從內(nèi)部存儲(chǔ)器32中進(jìn)行檢索的下一個(gè)地址。這時(shí),取出的加權(quán)值被乘以累加器58的內(nèi)容以提供加權(quán)的輸出。
接著,從內(nèi)部存儲(chǔ)器32中存取規(guī)則3的模糊輸出的地址并且提供十六進(jìn)制值$66給數(shù)據(jù)緩沖器40。提供十六進(jìn)制值$66作為評(píng)定規(guī)則2的結(jié)果,其中模糊輸出動(dòng)作3被指定十六進(jìn)制的規(guī)則強(qiáng)度值$66。因此,提供十六進(jìn)制值$66給數(shù)據(jù)緩沖器40。
然后ALU52從存儲(chǔ)在數(shù)據(jù)緩沖器40中的十六進(jìn)制值$66中減去存儲(chǔ)在累加器58中的十六進(jìn)制值$FF。結(jié)果是負(fù)的$-99值。當(dāng)提供給寄存器交換邏輯電路46時(shí),寄存器交換邏輯電路46認(rèn)定啟動(dòng)A。因此,啟動(dòng)選擇器42以便從累加器58向數(shù)據(jù)緩沖器40傳送數(shù)據(jù)。數(shù)據(jù)緩沖器40傳送最小隸屬程度值給規(guī)則3的模糊輸出的地址位置,即動(dòng)作3輸出。因此,十六進(jìn)制值$FF是在執(zhí)行REVW指令期間在這點(diǎn)的動(dòng)作3的目前規(guī)則強(qiáng)度值。
在評(píng)定規(guī)則3之后,由比較器72檢測(cè)指示被定的規(guī)則末尾的特別緩沖器地址,而且REVW指令被終止。這時(shí),已評(píng)定了每個(gè)規(guī)則1、2和3,而且每個(gè)相應(yīng)的模糊輸出已被指定一個(gè)規(guī)則強(qiáng)度值。在這里所述的例子中,每個(gè)動(dòng)作1和2已被指定十六進(jìn)制的規(guī)則強(qiáng)度值$00。另外,動(dòng)作3被指定十六進(jìn)制的規(guī)則強(qiáng)度值$FF。然后提供每個(gè)動(dòng)作作為到所用的解模糊程序的模糊輸出以確定數(shù)據(jù)處理系統(tǒng)10的恰當(dāng)動(dòng)作。例如,動(dòng)作3可解模糊以便打開一個(gè)閥或開啟一個(gè)風(fēng)扇。另外,動(dòng)作1至3的規(guī)則強(qiáng)度可被解模糊以便確定風(fēng)扇開啟或閥打開的程度。解模糊操作在數(shù)據(jù)處理技術(shù)中是眾所周知的,因此這里不詳細(xì)地說明。
因此,在數(shù)據(jù)處理系統(tǒng)10中執(zhí)行REVW指令期間,快速地和以少量的附加電路評(píng)定每個(gè)規(guī)則1、規(guī)則2和規(guī)則3。圖3中所示的大多數(shù)電路一般用于執(zhí)行數(shù)據(jù)處理器的通用處理。實(shí)現(xiàn)本發(fā)明要求在微ROM中的少量附加存儲(chǔ)器和少量的附加的指令解碼邏輯電路。另外,在執(zhí)行單元14中,除了傳統(tǒng)要求的邏輯電路外,要求比較器72和寄存器交換邏輯電路46。
因?yàn)樵趫?zhí)行REVW指令期間完整地處理了整個(gè)規(guī)則評(píng)定步驟,可取得較快的執(zhí)行期間。在規(guī)則評(píng)定步驟的前面實(shí)施例中,要求具有很多步驟的軟件程序。例如,使用MC68HC11指令集中實(shí)現(xiàn)的軟件程序典型地要求30條指令以執(zhí)行規(guī)則評(píng)定步驟。REVW指令替代MC68HC11程序的所有31條指令。因此,通過單個(gè)REVW指令的實(shí)現(xiàn)顯著地減少了典型地要求執(zhí)行規(guī)則評(píng)定步驟所要求的執(zhí)行時(shí)間。
另外,REVW指令非常靈活而且不要求固定數(shù)量的模糊輸入或模糊輸出。通過檢測(cè)緩沖器地址并且因此設(shè)定VCCR信號(hào),執(zhí)行單元14分別提供模糊輸出和模糊輸入的最大或最小值。數(shù)據(jù)處理系統(tǒng)10的用戶只要求在內(nèi)部存儲(chǔ)器32的預(yù)定位置存儲(chǔ)被評(píng)定的規(guī)則的格式。在現(xiàn)有技術(shù)的解決方案中,這些規(guī)則存儲(chǔ)在預(yù)定的存儲(chǔ)單元中,這些規(guī)則必須采用每個(gè)規(guī)則具有第一預(yù)定數(shù)量的模糊輸入和第二預(yù)定數(shù)量的模糊輸出的固定格式。如果沒有檢測(cè)到緩沖器地址,和每個(gè)規(guī)則要求固定數(shù)量的模糊輸入及模糊輸出,對(duì)于具有很少模糊輸入或模糊輸出的那些規(guī)則,大量的存儲(chǔ)器將浪費(fèi)了。
而且,因?yàn)檫@些規(guī)則是以陣列存儲(chǔ)在存儲(chǔ)器中,它們可被評(píng)定而不會(huì)從外部信源中斷,對(duì)于一個(gè)REVW指令,一個(gè)以上的規(guī)則可被評(píng)定。在評(píng)定第一規(guī)則后,可立即評(píng)定第二規(guī)則,無需從數(shù)據(jù)處理系統(tǒng)10的用戶檢索附加信息。可檢索這些規(guī)則,直到達(dá)到陣列的末尾為止。陣列的末尾由一個(gè)專門的緩沖器地址指示。在執(zhí)行前述實(shí)施例的規(guī)則評(píng)定步驟期間,每個(gè)規(guī)則分開評(píng)定。因此,使用前面的軟件技術(shù)評(píng)定多個(gè)規(guī)則需要的時(shí)間長(zhǎng)于使用REVW指令評(píng)定同樣多個(gè)規(guī)則所需的時(shí)間。
在這里所述的本發(fā)明的實(shí)施例中,REVW指令的執(zhí)行可被中斷而不丟失中間的結(jié)果。在處理中斷后,可在REVW指令中斷的那點(diǎn)上再繼續(xù)執(zhí)行REVW指令。REVW指令可被中斷,因?yàn)樵谧冎芳拇嫫髦写鎯?chǔ)在內(nèi)部存儲(chǔ)器32中的規(guī)則陣列的指示符,它是在中斷期間保存的。另外,在中斷期間VCCR比特的狀態(tài)沒有改變,因?yàn)樗谴鎯?chǔ)在條件碼寄存器60即處理器狀態(tài)寄存器中,在中斷操作期間它不改變。最小和最大運(yùn)算的中間結(jié)果也存儲(chǔ)在累加器58中。而且,在中斷運(yùn)算期間累加器58沒有改變。因此,當(dāng)處理大量規(guī)則時(shí),即使REVW指令可能是耗時(shí)的,該指令可由數(shù)據(jù)處理系統(tǒng)10的用戶中斷,以便可執(zhí)行更緊急的。在更緊急的操作完成時(shí)再繼續(xù)執(zhí)行REVW指令。
這里所述的本發(fā)明的實(shí)施例僅僅通過舉例進(jìn)行。但是,執(zhí)行這里所述的功能可有很多其它的實(shí)施例。例如,被評(píng)定規(guī)則的規(guī)則庫的開始可提供作為REVW指令的操作數(shù)。另外,數(shù)據(jù)處理系統(tǒng)10外部的存儲(chǔ)電路可用于存儲(chǔ)每個(gè)規(guī)則和評(píng)定規(guī)則期間使用的模糊輸入。而且,雖然N和VCCR信號(hào)用于控制本發(fā)明這個(gè)實(shí)施例中寄存器交換邏輯電路46的運(yùn)算,和CCCR信號(hào)用于控制加權(quán)運(yùn)算,在數(shù)據(jù)處理系統(tǒng)10內(nèi)的其它信號(hào)可容易地運(yùn)用。另外,在寄存器交換邏輯電路46中使用的邏輯門也可以其它邏輯電路代替,諸如“與非”門、“或”門,“或非”門或者“異或”門。
雖然這里敘述了本發(fā)明的原理,本領(lǐng)域的技術(shù)人員清楚地懂得,這個(gè)說明僅是通過舉例進(jìn)行的,而且不是作為對(duì)本發(fā)明精神的限定。例如,REVW指令可在CPU內(nèi)執(zhí)行或者由CPU和共同處理器執(zhí)行。在后者情況下,認(rèn)為CPU包括指令解碼器,而認(rèn)為共同處理器包括執(zhí)行單元。因此,想要通過所附加的權(quán)利要求書復(fù)蓋落入本發(fā)明精神和范圍的本發(fā)明的所有修改。
權(quán)利要求
1.一種評(píng)定模糊邏輯規(guī)則的數(shù)據(jù)處理系統(tǒng)(10),其特征在于一個(gè)指令解碼器(18),它具有用于接收指令的一個(gè)輸入端,和用于響應(yīng)該指令提供多個(gè)控制信號(hào)的一個(gè)輸出端;和一個(gè)執(zhí)行單元(14),它接到一條信息總線(41)并且具有接到該指令解碼器(18)的輸出端的一個(gè)控制輸入端;該指令解碼器(18)控制執(zhí)行單元(14),使執(zhí)行單元(14)響應(yīng)規(guī)則評(píng)定加權(quán)指令經(jīng)過信息總線(41)取出多個(gè)模糊輸入;該指令解碼器(18)還控制該執(zhí)行單元(14)確定多個(gè)模糊輸入的最小輸入,并且響應(yīng)該規(guī)則評(píng)定加權(quán)指令加權(quán)多個(gè)模糊輸入的最小輸入,以提供一個(gè)模糊輸出。
2.根據(jù)權(quán)利要求1的數(shù)據(jù)處理系統(tǒng)(10),其特征在于,該執(zhí)行單元(14)包括一個(gè)條件碼寄存器(60),如果該條件碼寄存器(60)中選擇的比特為預(yù)定狀態(tài),則該執(zhí)行單元(14)選擇地加權(quán)多個(gè)模糊輸入的最小輸入。
3.根據(jù)權(quán)利要求1的數(shù)據(jù)處理系統(tǒng)(10),其特征在于,該執(zhí)行單元(14)包括第一(43)和第二(53)變址寄存器,該執(zhí)行單元使用第一變址寄存器(43)檢索相應(yīng)地址以便取出更多個(gè)模糊輸入,和使用第二變址寄存器(53)取出加權(quán)。
4.一種在數(shù)據(jù)處理系統(tǒng)(10)中評(píng)定模糊邏輯規(guī)則的方法,其特征在于,包括以下步驟(a)對(duì)與模糊邏輯規(guī)則相關(guān)的多個(gè)模糊輸入執(zhí)行預(yù)定的算術(shù)運(yùn)算提供一個(gè)未加權(quán)的輸出;(b)檢驗(yàn)數(shù)據(jù)處理系統(tǒng)(10)的條件碼寄存器(60)中的控制比特以確定該模糊邏輯規(guī)則是否為加權(quán)的;(c)取出相應(yīng)于該模糊邏輯規(guī)則的加權(quán);和(d)響應(yīng)在預(yù)定狀態(tài)的該控制比特,以該加權(quán)乘該未加權(quán)的輸出來加權(quán)該模糊邏輯規(guī)則以便提供一個(gè)模糊輸出。
5.一種在數(shù)據(jù)處理系統(tǒng)(10)中評(píng)定模糊邏輯規(guī)則的方法,其特征在于,包括以下步驟(a)對(duì)與模糊邏輯規(guī)則相關(guān)的多個(gè)模糊輸入執(zhí)行預(yù)定的算術(shù)運(yùn)算提供一個(gè)未加權(quán)的輸出;(b)確定該模糊邏輯規(guī)則是否是加權(quán)的;(c)使用一個(gè)變址寄存器(53)取出一個(gè)加權(quán);和(d)以該加權(quán)乘該未加權(quán)的輸出來加權(quán)該模糊邏輯規(guī)則提供一個(gè)模糊輸出。
6.根據(jù)權(quán)利要求4或5的方法,其特征在于對(duì)規(guī)則庫中的多個(gè)模糊邏輯規(guī)則的每個(gè)規(guī)則重復(fù)步驟(a)-(d)的步驟。
7.根據(jù)權(quán)利要求4或5的方法,其特征在于對(duì)多個(gè)模糊輸入執(zhí)行預(yù)定的算術(shù)運(yùn)算的步驟包括確定多個(gè)模糊輸入的最小輸入的步驟。
8.根據(jù)權(quán)利要求7的方法,其特征在于,加權(quán)該模糊邏輯規(guī)則步驟包括步驟提供多個(gè)模糊輸入的最小輸入給運(yùn)算邏輯單元(52)的第一輸入端;提供該加權(quán)給該運(yùn)算邏輯單元(52)的第二輸入端;和啟動(dòng)該運(yùn)算邏輯單元(52)執(zhí)行乘法;以及提供該運(yùn)算邏輯單元(52)的輸出作為模糊輸出。
9.根據(jù)權(quán)利要求4或5的方法,其特征在于通過確定最大的模糊輸出提供第二模糊輸出和先前的第二模糊輸出的步驟。
10.根據(jù)權(quán)利要求4的方法,其特征在于;檢驗(yàn)條件碼寄存器(60)中的控制比特的步驟包括檢驗(yàn)條件碼寄存器(60)中的進(jìn)位比特的步驟。
全文摘要
數(shù)據(jù)處理系統(tǒng)(10)響應(yīng)單一REVW軟件指令有選擇性地加權(quán)模糊邏輯規(guī)則,取出與該模糊邏輯規(guī)則相關(guān)的一組模糊輸入并確定該組中最小的模糊輸入;然后用相應(yīng)的加權(quán)值乘該最小模糊輸入來有選擇地加權(quán)該最小模糊輸入,提供該模糊邏輯規(guī)則的模糊輸出。在一個(gè)實(shí)施例中,條件碼寄存器(60)的進(jìn)位比特確定模糊邏輯規(guī)則是否為加強(qiáng)的。數(shù)據(jù)處理系統(tǒng)對(duì)模糊規(guī)則庫中所有規(guī)則執(zhí)行這個(gè)有選擇性的模糊規(guī)則加權(quán)運(yùn)算。
文檔編號(hào)G06N5/04GK1133457SQ9512119
公開日1996年10月16日 申請(qǐng)日期1995年12月21日 優(yōu)先權(quán)日1994年12月22日
發(fā)明者詹姆斯·格雷格·瓦特 申請(qǐng)人:摩托羅拉公司