專利名稱:在模糊邏輯運(yùn)算中決定組內(nèi)資格的電路和方法
技術(shù)領(lǐng)域:
本發(fā)明一般地講涉及一種數(shù)據(jù)處理系統(tǒng),特別地涉及數(shù)據(jù)處理系統(tǒng)中模糊邏輯運(yùn)算的執(zhí)行。
數(shù)據(jù)處理器已發(fā)展為二進(jìn)制機(jī)器,其輸入和輸出被譯作1或0,不存在其它的可能。在大多數(shù)場合是這樣的,但常常有一種回答不是簡單的“是”或“不”,而是介于這“是”與“不”兩者之間的某種東西。為此,人們發(fā)展了一個被叫做“模糊邏輯”的概念,以使數(shù)據(jù)處理器能提供“是”與“不”之間的回答。
模糊邏輯是一個邏輯系統(tǒng),它有帶模糊邊界的資格功能(membershipfunction)。資格功能將主觀的表述,(例如“溫度”),翻譯成典型的數(shù)據(jù)處理器能夠識別的值。標(biāo)志(例如“熱的”)用來識別輸入值的范圍,其邊界不是標(biāo)志在其一邊為真而在其另一邊則是假的點(diǎn)。相反,一個實(shí)現(xiàn)模糊邏輯的系統(tǒng)中,功能的邊界漸漸地改變,且有可能一個相鄰近的資格組的邊界會重疊起來。因此,一個資格度被典型地指定給一個輸入值。例如,假定在整個溫度范圍內(nèi)有兩個資格功能,輸入溫度可能落在功能標(biāo)志“冷”和“熱”二者的重疊區(qū)域內(nèi)。于是,進(jìn)一步的處理就需要決定每個資格功能中的資格度(即輸入溫度是否在每個資格組(冷和熱)中都適合)。
被叫做“模糊化”的步驟用來使輸入與資格功能與實(shí)施模糊邏輯的系統(tǒng)中的資格功能聯(lián)系起來。模糊化處理是把具體的數(shù)值加到如“溫度是熱的”這樣的主觀表述上。這些數(shù)值企圖提供一個人類認(rèn)知的良好近似,這種認(rèn)知一般是不僅限于絕對真理的環(huán)境的。在模糊化步驟之后,執(zhí)行“規(guī)則評價”步驟。在規(guī)則評價步驟的執(zhí)行期間,一種被叫做“最小-最大”推理的技術(shù)用來為用戶所確定的語言規(guī)則計(jì)算數(shù)字結(jié)果。規(guī)則評價步驟得出的結(jié)果叫做“模糊輸出”且對變化的度來說可能是真的。因此,可能產(chǎn)生競爭的結(jié)果。模糊邏輯處理的最后步驟被叫做“消模糊化”。正如名稱的意思,消模糊化處理是將所有的模糊輸出聯(lián)合成一個合成結(jié)果,此結(jié)果可以用于標(biāo)準(zhǔn)數(shù)據(jù)處理系統(tǒng)。關(guān)于模糊邏輯的更多的信息,可參考由詹姆斯·N·山伯格喬士(JamesM.Sibigtroth)所寫的論文“在硬件中執(zhí)行模糊專家規(guī)則”。該論文刊在1992年4月號A1EXPERT的第25至31頁上。
典型地,模糊化步驟一直是用軟件程序來實(shí)現(xiàn)的,此程序由外部設(shè)備或由數(shù)據(jù)處理器執(zhí)行。這樣的軟件程序用數(shù)學(xué)方程式計(jì)算資格度,而這卻需要很多很多的處理時間。所以,雖然軟件程序提供了一個準(zhǔn)確的結(jié)果,但是處理時間通常限制了系統(tǒng)實(shí)現(xiàn)的功能。另一個公共的軟件解決辦法是實(shí)行一個“查找表”程序,在此程序中,貯存在存儲器中的數(shù)據(jù)表被存取,其值與具體輸入值相一致。盡管查找表程序比數(shù)學(xué)計(jì)算來得快些,但它需要大量的專用存儲區(qū),實(shí)現(xiàn)起來很昂貴。實(shí)現(xiàn)模糊化步驟的硬件解決辦法提供了更快的結(jié)果。然而,硬件解決辦法通常需要大量的專用電路,這些電路是不可改變的。盡管硬件解決辦法對模糊化步驟是典型地比軟件實(shí)現(xiàn)來得快,但硬件辦法需要大量專用電路區(qū)且在數(shù)據(jù)處理系統(tǒng)中實(shí)現(xiàn)常常是太昂貴了。
因此,為快速實(shí)行模糊化步驟,需要有一種沒有昂貴的硬件需求的電路和方法。將速度與硬件解決方法典型地結(jié)合起來是需要的,而不是通常地把存儲器與軟件解決辦法結(jié)合起來。
本發(fā)明能滿足上述的需要。因此,提供了一種形式的、用于在數(shù)據(jù)處理系統(tǒng)中實(shí)行模糊邏輯運(yùn)算的電路和方法,該模糊邏輯運(yùn)算在一組預(yù)定的資格組中決定輸入點(diǎn)的資格,該預(yù)定的資格組是由多數(shù)邊界值來確定的。該方法包括為在數(shù)據(jù)處理系統(tǒng)中開始執(zhí)行模糊邏輯運(yùn)算而接收資格評價指令的步驟。對資格評價指令解碼以提供多個控制信號。多個邊界值中的第一個值被從輸入值中減去以產(chǎn)生第一個增量(delta)值。與此同時,輸入值被從多個邊界值的第二個值中減去以產(chǎn)生第二個增量值。第一個增量值與多個邊界值的第三個值相乘以產(chǎn)生第一個結(jié)果。與此同時,第二個增量值與多數(shù)邊界值的第四個值相乘以產(chǎn)生第二個結(jié)果。當(dāng)?shù)谝粋€增量值或第二個增量值有一個值小于零的時候,提供一個資格度信號以表示輸入點(diǎn)不包含在該預(yù)定的資格組中。如果第一個增量值或第二個增量值都不小于零,則資格度信號等于第一個結(jié)果、第二個結(jié)果或者多個邊界值的第五個值中最小的值。
這些特征和其它的特征以及優(yōu)點(diǎn)將從下文結(jié)合圖示的詳盡描述中得以更明白的理解。
在附圖中
圖1表示了用畫圖形的方法描述模糊邏輯的一些概念和基本術(shù)語;
圖2更詳細(xì)表示了圖1的資格組;
圖3顯示了按照本發(fā)明的、用方框圖形式表示的數(shù)據(jù)處理系統(tǒng);
圖4是顯示了用方框圖形式表示的圖3的執(zhí)行單元;
圖5顯示了用邏輯電路形式表示的圖4的標(biāo)志產(chǎn)生邏輯電路;
圖6顯示了用方框圖形式表示的圖4的操作數(shù)分配邏輯電路;
圖7顯示了用方框圖形式表示的圖4的算術(shù)邏輯單元;
圖8顯示了用流程圖形式表示了本發(fā)明中執(zhí)行MEM指令期間所執(zhí)行功能的流程。
本發(fā)明提供了一種電路和方法,它們能把輸入快速地“模糊”到數(shù)據(jù)處理系統(tǒng)中而用最少量的專用電路。本發(fā)明提供了一種指令,它允許數(shù)據(jù)處理系統(tǒng)的用戶快速實(shí)行模糊化步驟而毋須既難又長的軟件程序。快速而有效地執(zhí)行該指令將單一輸入標(biāo)記的模糊化步驟進(jìn)行編碼,但在數(shù)據(jù)處理系統(tǒng)中沒有過量的附加電路。
在描述本發(fā)明的實(shí)現(xiàn)中,術(shù)語“認(rèn)定”和“取消”以及由此而引伸的各種語法形式被用來避免論及“有效高”和“有效低”邏輯信號混合時的混亂。“認(rèn)定”是指把邏輯信號或寄存器位變成它的有效狀態(tài)或邏輯真狀態(tài)?!叭∠笔侵赴堰壿嬓盘柣蚣拇嫫魑蛔兂伤臒o效狀態(tài)或邏輯假狀態(tài)。另外,可在一個值的前面加符號“$”表示十六進(jìn)制。
圖1提供了表示模糊邏輯的幾個基本術(shù)語和概念的圖。在圖1所描述的模糊邏輯系統(tǒng)中,“系統(tǒng)輸入”是以華氏溫度表示的溫度。五個“資格功能”被提供,以與溫度范圍的標(biāo)記有關(guān)。例如,從0°F~30°F,溫度標(biāo)記為“冷”。同樣,從20°F~50°F,溫度標(biāo)記為“涼”。注意,每個資格組的邊界與相鄰資格組的邊界有所重疊。因此,溫度可能處在多于一個的組中。例如,假定系統(tǒng)輸入指示的溫度為68°F。參照圖1,注意到68°F是在“溫暖”資格組和“十分溫暖”資格組的邊界之內(nèi),故在這些資格組的每一個中都可得到非零資格度。該系統(tǒng)輸入對“溫暖”資格組有$33資格度,并對“十分溫暖”資格組有$CC資格度。如果系統(tǒng)輸入指示了溫度75°F,則溫度就只有“十分溫暖”資格組的$FF資格度。同樣,溫度75°F應(yīng)在“熱”資格組有$00資格度。在圖1的模糊邏輯實(shí)現(xiàn)中,資格度可以是從十六進(jìn)制值$00至$FF的范圍,相應(yīng)于分?jǐn)?shù)0.00至0.996的范圍。
圖2表示了一個單一的資格組,可以用四個值來表示點(diǎn)1,點(diǎn)2,斜率1和斜率2。第一個值叫做“增量1”,被計(jì)算作系統(tǒng)輸入(點(diǎn)“X”)和點(diǎn)1之間的差。同樣,第二個值叫做“增量2”,被計(jì)算作點(diǎn)2和系統(tǒng)輸入之間的差。從增量1值和增量2值的計(jì)算可見,根據(jù)本發(fā)明的方法提供了資格度。如果增量1和增量2的值小于零,那么相應(yīng)資格組的資格度為0.00。否則,資格度等于增量1和斜率1和乘積或增量2和斜率2的乘積二者之最小值或飽和值。在現(xiàn)在正測試的資格組中,最小值是現(xiàn)行輸入值。在這里所述的例子中,飽和值是十六進(jìn)制值$FF。不過,其它的實(shí)施可以允許模糊邏輯系統(tǒng)的用戶選擇一個與具體系統(tǒng)的性能相一致的飽和值。
被叫做記憶標(biāo)記“MEN”的本發(fā)明的指令,使數(shù)據(jù)處理系統(tǒng)在多個資格組中的一組中完成一系列決定系統(tǒng)輸入值的資格度的步驟。每個資格組的特征均在于多個邊界值(點(diǎn)1,點(diǎn)2,斜率1和斜率2),這些邊界值被從存儲器中再現(xiàn)。如果多個邊界值中的每一個都被適當(dāng)?shù)刭A存在存儲器中,且如果系統(tǒng)輸入值在執(zhí)行MEM指令以前被適當(dāng)?shù)刭A存在寄存器單元中,則可以決定多個資格組的一組中系統(tǒng)輸入的資格度。接著,在多個資格組的第一組中的系統(tǒng)輸入的資格度被貯存在存儲器的預(yù)定單元里。MEM指令的實(shí)現(xiàn)使數(shù)據(jù)處理系統(tǒng)的用戶比傳統(tǒng)的軟件能更快地完成資格評價功能,且其所用的專用電路區(qū)比典型的硬件所要求的要少。例如,一般操作數(shù)據(jù)處理系統(tǒng)所需要的算術(shù)邏輯單元被修正來在分離操作方式中進(jìn)行操作。通常,算術(shù)邏輯單元能同時完成預(yù)定點(diǎn)上單一的十六位操作。但是,這里所揭示的算術(shù)邏輯單元可以有選擇地完成一個單一的十六位操作或兩個同時進(jìn)行的八位操作。因此,計(jì)算資格組中資格度所需的算術(shù)操作被同時進(jìn)行計(jì)算,所需的時間比傳統(tǒng)所需的要少。需要的附加電路很少。為了在分離操作模式下操作算術(shù)邏輯單元,一個單一的使能信號被提供給在現(xiàn)存的緩沖器電路。另外,實(shí)現(xiàn)MEM指令只需要少量的附加電路。
指令的一種實(shí)現(xiàn)和上述的操作方法表示在圖3中。圖3示出了可以實(shí)現(xiàn)模糊化指令的數(shù)據(jù)處理系統(tǒng)10。數(shù)據(jù)處理系統(tǒng)10通常包括中央處理單元(CPU)12、振蕩器24、電源電路26、時基電路28、外部總線接口30和內(nèi)部存儲器32。CPU12通常有一個執(zhí)行單元14、一個總線控制邏輯電路16、一個指令譯碼邏輯電路18、一個控制單元20和一個定序器22。
在操作中,“OSC1”信號被經(jīng)過外部源(如晶體)提供給振蕩器24。該晶體被接在“OSC1”信號和“OSC2”信號之間以使晶體產(chǎn)生振蕩。OSC1提供一個“定時”信號給數(shù)據(jù)處理系統(tǒng)10的其余部分。晶體振蕩器的操作在數(shù)據(jù)處理技術(shù)中是已知的,且對本領(lǐng)域技術(shù)人員是顯而易見的。
同樣,電源電路26從外部電源接受兩個信號“Vdd”和“Vss”。Vdd信號提供一個+5V,Vss信號提供一個參考電壓或地電壓。Vdd和Vss信號被提供給數(shù)據(jù)處理系統(tǒng)10的每個其余部件。這些信號的線路在數(shù)據(jù)處理技術(shù)中是已知的,并對本領(lǐng)域中的技術(shù)人員是顯而易見的。
時基電路28接受定時信號并接著將合適的時基信號經(jīng)時基控制總線38提供給CPU12、外部總線接口30和內(nèi)部存儲器32中的每一個。
多個地址值被從外部總線接口30經(jīng)外部地址總線35提供。同樣地,多個數(shù)據(jù)值經(jīng)外部數(shù)據(jù)總線33與外部總線接口20進(jìn)行通信。外部總線接口30的作用,是使地址和數(shù)據(jù)在外部用戶和數(shù)據(jù)處理系統(tǒng)10之間進(jìn)行通信。外部總線接口30將多個地址和數(shù)據(jù)值分別經(jīng)內(nèi)部地址總線36和內(nèi)部數(shù)據(jù)總線34提供給數(shù)據(jù)處理系統(tǒng)10的其余部分。內(nèi)部存貯器32的作用是貯存適當(dāng)操作數(shù)據(jù)處理系統(tǒng)10所需的信息值。另外,如果另有規(guī)定,那么其它數(shù)據(jù)值可以貯存在經(jīng)內(nèi)部地址總線36和內(nèi)部數(shù)據(jù)總線34而提供的用戶程序中。
CPU12執(zhí)行數(shù)據(jù)處理系統(tǒng)10操作期間所需要的每一個指令。內(nèi)部地址總線36和內(nèi)部數(shù)據(jù)總線34在執(zhí)行單元14和數(shù)據(jù)處理系統(tǒng)10的其余部分之間進(jìn)行信息通信??偩€控制邏輯電路16取出指令和操作數(shù)。然后每個指令由指令譯碼邏輯電路18譯碼并提供給控制單元20和定序器22??刂茊卧?0和定序器22維持每個指令的執(zhí)行序列,以最有效地利用數(shù)據(jù)處理系統(tǒng)10的計(jì)算能力。另外,控制單元20還包括一個微ROM即Micro-ROM存儲器(圖上未畫出),它把多個控制信息經(jīng)微ROM控制總線65提供給執(zhí)行單元14、總線控制邏輯16以及指令譯碼邏輯18。
執(zhí)行單元14更詳細(xì)地表示在圖4中。執(zhí)行單元14通常包括一個數(shù)據(jù)緩沖器42、一個結(jié)果選擇邏輯電路46、一個標(biāo)志產(chǎn)生邏輯電路48、一個操作數(shù)分配邏輯電路50、一個A輸入控制邏輯電路52、一個A輸入多路器54、一個算術(shù)邏輯單元(ALU)56、一個B輸入多路器58、一個首位數(shù)據(jù)寄存器60和一個系統(tǒng)輸入寄存器64。在執(zhí)行單元14中還可包括其它的寄存器,雖然它們未在圖4中畫出來,但它們對該技術(shù)領(lǐng)域中技術(shù)人員是顯而易見的。例如,執(zhí)行單元14可能包括一個變址寄存器或一個累加器。另外,在典型的數(shù)據(jù)處理系統(tǒng)中,系統(tǒng)輸入寄存器可以采用累加器來實(shí)現(xiàn)。
外部信息總線40把地址和數(shù)據(jù)信息提供給數(shù)據(jù)緩沖器42。外部信息總線40分別從內(nèi)部地址總線36和內(nèi)部數(shù)據(jù)總線34接受地址和數(shù)據(jù)信息。數(shù)據(jù)緩沖器42把經(jīng)外部信息總線40所傳送的值經(jīng)信息總線A66和信息總線B68提供給執(zhí)行單元14的其余部分。雖然這里沒詳細(xì)畫出來,信息總線A66和信息總線B68的總線寬是十六位的,且分成高端(位15至位8)和低端09位7至位0)。
信息總線A66的低端雙向耦合到系統(tǒng)輸入寄存器64的第一輸入端。同樣,信息總線B68的高端雙向耦合到系統(tǒng)輸入寄存器64的第二輸入端。被叫做“增量1”的第一個增量值經(jīng)信息總線B68的高端被提供給增量寄存器60的第一輸入端。第二個增量值“增量2”經(jīng)信息總線B68的低端被提供給增量寄存器60的第二輸入端。增量寄存器60還連接到信息總線A66和信息總線B68以提供信息給執(zhí)行單元14的其它部分。任何其它寄存器,如累加器和變址寄存器,可同樣地耦合到信息總線A66和信息總線B68。
信息總線A66被接到A輸入多路器54的第一輸入端。一個標(biāo)記“控制”的n位寬的信號被提供A給輸入多路器54的第二輸入端,其中n為整數(shù)。A輸入多路器54把標(biāo)記為“A輸入低端”的第一個十位輸出提供給ALU56的第一輸入端,并把標(biāo)記為“A輸入高端”的第二個十位輸出提供給ALU56的第二個輸入端。
信息總線B68連到B輸入多路器58的一個輸入端。使B輸入多路器58正確地起作用所需的控制信息被經(jīng)控制單元20中由微ROM(未畫出)所產(chǎn)生的多數(shù)信號提供給控制輸入,并經(jīng)微ROM控制總線65傳送。B輸入多路器58把標(biāo)記為“B輸入低端”的第一個十位輸出提供給ALU56的第三個輸入端。另外,B輸入多路器58把標(biāo)記為“B輸入高端”的第二個十位輸出提供給ALU56的第四個輸入端。
標(biāo)記為“分離模式控制”的信號被提供給ALU56的第五個輸入端。分離模式控制信號由控制單元20中的微ROM存儲器根據(jù)對MEM指令的執(zhí)行而產(chǎn)生。ALU56處理每一個輸入,以提供多個經(jīng)結(jié)果總線120傳送的結(jié)果。結(jié)果總線120提供多個信息值給結(jié)果選擇邏輯電路46和標(biāo)志產(chǎn)生邏輯電路48。另外,結(jié)果總線120耦合到信息總線B68。
除了與結(jié)果總線120相連,標(biāo)志產(chǎn)生邏輯電路48還耦合到增量寄存器60和數(shù)據(jù)緩沖器42。標(biāo)志產(chǎn)生邏輯電路48從增量寄存器60接受“增量”信號,并從數(shù)據(jù)緩沖器42接受“緩沖數(shù)據(jù)”信號。標(biāo)志產(chǎn)生邏輯電路48也耦合到操作數(shù)分配邏輯電路50和結(jié)果選擇邏輯電路46,以便經(jīng)標(biāo)志總線70提供多個標(biāo)志值。另外,標(biāo)志產(chǎn)生邏輯電路48耦合到ALU56以便分別向ALU56的第六、第七個輸入端提供J高和H低信號。
操作數(shù)分配邏輯電路50也連接到信息總線A66、信息總線B68和標(biāo)志總線70。操作數(shù)分配邏輯電路50連接到A輸入控制邏輯電路52,以提供標(biāo)記為“乘數(shù)1”的第一個輸入信號和標(biāo)記為“乘數(shù)2”的第二個輸入信號。另外,操作數(shù)分配邏輯電路50耦合到增量寄存器60以接收增量信號。A輸入控制邏輯電路52連到A輸入多路器54,以提供控制信號。
結(jié)果選擇邏輯46經(jīng)標(biāo)志總線70和結(jié)果總線120接收信息。該信息被處理以提供標(biāo)記為“選擇”的第一個輸出和標(biāo)記為“強(qiáng)制$FF”的第二個輸出。
標(biāo)志產(chǎn)生邏輯電路48被更詳細(xì)地表示在圖5中。標(biāo)志產(chǎn)生邏輯電路48通常包括一個或非門110、一個或非門112、一個或門114、一個或非門116、一個或非門118、一個閂鎖130、一個與門132、一個與門134、一個閂鎖136、一個與門138、一個或非門140、一個或非門142、一個或門144、一個或非門146、一個或非門148和一個或門150。閂鎖130和136每個都是用D觸發(fā)器來實(shí)現(xiàn)的,它有一個數(shù)據(jù)輸入端(D)、一個定時輸入端(C)、一個復(fù)位輸入端(R)和一個數(shù)據(jù)輸出端(Q)。大家對數(shù)據(jù)處理技術(shù)中的D觸發(fā)器是熟熟知的,為此,將不再贅述。
數(shù)據(jù)緩沖器42(圖4)提供第一個信息值的第15至8位給或非門112。在這里所述的例子中,第一個信息值通過第一個緩沖數(shù)據(jù)信號提供,以下此信號叫做緩沖數(shù)據(jù)1信號。緩沖數(shù)據(jù)1信號將提供一個點(diǎn)1值或者提供一個斜率1值?;蚍情T112的輸出標(biāo)記為“Z2”且提供給閂鎖136的數(shù)據(jù)輸入端(D)和與門134的第一個輸入端。時基控制信號由時基控制總線38提供給閂鎖136的定時輸入端(C)。閂鎖136的數(shù)據(jù)輸出(Q)連接到與門134的第二個輸入端以提供一個標(biāo)記為“ZP2”的信號。與門134的輸出標(biāo)記為JP高且被提供給或門144的第一個輸入端。
另外,緩沖數(shù)據(jù)1信號的第15至12位(B15~B12)被提供給或非門140?;蚍情T140的輸出被標(biāo)記為“S2”且提供給或非門142的第一個輸入端。
數(shù)據(jù)緩沖器42還把第二個信息值的第7至0位提供給或非門118和與門138。第二個信息值經(jīng)第二個緩沖數(shù)據(jù)信號(叫做緩沖數(shù)據(jù)2信號)提供。緩沖數(shù)據(jù)2信號把點(diǎn)2值的第7至0位提供給與門138,并把斜率2的第7至0位提供給或非門118。與門138把輸出送到閂鎖130的數(shù)據(jù)輸入端(D)?;蚍情T118提供一個標(biāo)記為“Z4”的輸出。Z4信號傳送到與門132的第一個輸入端。時基控制信號由時基控制總線38提供給閂鎖130的定時輸入端(C)。閂鎖130的數(shù)據(jù)輸出端(Q)連接到與門132的第二個輸入端,以提供一個標(biāo)記為“ZP4”的信號。與門132的輸出標(biāo)記為JP低且提供給或門150的第一個輸入端。
另外,緩沖數(shù)據(jù)2信號的第7至4位(B7~B4)被提供給或非門146?;蚍情T146的輸出被標(biāo)記為“S4”且提供給或非門148的第一個輸入端。
增量寄存器60把第三個信息值的位15至位12提供給或非門110。在此實(shí)施例中,第三個信息值由叫做增量1信號的第一個增量信號來提供。或非門110的輸出標(biāo)記為“Z1”,并也經(jīng)由標(biāo)志總線70傳送。Z1信號也提供給或非門142的第二個輸入端?;蚍情T116的輸出標(biāo)記為“Z3”且經(jīng)標(biāo)志總線70傳送。第四個信息值經(jīng)由叫做增量2信號的第二個增量信號提供。Z3信號還提供給或非門148的第二個輸入端。
結(jié)果總線120分別向或門114的第一個輸入和第二個輸入端提供N低和N高信號?;蜷T114的輸出標(biāo)記為Nmem。Nmem信號提供給閂鎖130和閂鎖136的復(fù)位輸入端(R)。另外,Nmem信號提供給或非門142和或非門148各自的第三個輸入端。
或非門142的輸出被標(biāo)記為“JS高”且提供給或門144的第二個輸入端。或門144的輸出被標(biāo)記為“J高”。另外,或非門148的輸出被標(biāo)記為“JS低”且提供給或門150的第二個輸入端。或門150的輸出被標(biāo)記為“J低”。J低和J高信號經(jīng)標(biāo)志總線70進(jìn)行通信。
操作數(shù)分配邏輯電路50更詳細(xì)地顯示在圖6中。操作數(shù)分配邏輯電路50通常包括一個第一多路器72、一個第二多路器74、一個第三多路器76和一個第四多路器78。
增量寄存器60和數(shù)據(jù)緩沖器42分別將增量1值和斜率1值的低4位提供給多路器72的第一和第二輸入端。另外,增量寄存器60和數(shù)據(jù)緩沖器42分別將增量1值和斜率1值的全部8位提供給多路器74的第一和第二輸入端。同樣,增量寄存器60和數(shù)據(jù)緩沖器42分別將增量2值和斜率2值的低4位提供給多路器76的第一和第二輸入端。增量寄存器60和數(shù)據(jù)緩沖器42分別將增量2值和斜率2值的全部8位提供給多路器78的第一和第二輸入端。
“Z1”信號經(jīng)標(biāo)志總線70提供給多路器72的第三輸入端。另外,Z1信號經(jīng)標(biāo)志總線70提供給多路器74的第三輸入端。同樣,標(biāo)記為“Z3”的信號被分別提供給多路器76和多路器78的第三輸入端。Z3信號經(jīng)標(biāo)志總線70傳送。
多路器72輸出四位乘數(shù)1信號,而多路器76提供四位乘數(shù)2信號。多路器74輸出一個標(biāo)記為“被乘數(shù)1”的八位信號,該信號經(jīng)信息總線A66的高端傳送。多路器78輸出一個標(biāo)記為“被乘數(shù)2”的八位信號,該信號經(jīng)信息總線A66的低端傳送。
ALU56更詳細(xì)地表示在圖7中。ALU56通常包括多個相加電路(80,82,84,86,88,92,94,96,98和100)、一個緩沖器90、一個高進(jìn)位超前邏輯電路102、一個低進(jìn)位超前邏輯電路104、一個高狀態(tài)標(biāo)志電路106和一個低狀態(tài)標(biāo)志電路108。
A輸入低端信號提供第一組多個位,分別標(biāo)記為“a0”,“a1”,“a2”,“a8”和“a9”。位a0被輸入到相加器100第一輸入端。同樣,位a1至a9被分別送到相加器98、相加器96、相加器94和相加器92各自的第一輸入端。B輸入低端信號提供第二組多個位,分別標(biāo)記為“b0”,“b1”,“b2”,“b8”和“b9”。位b0被提供給相加器100的第二輸入端。同樣,位b1至b9被分別提供給相加器98、相加器96、相加器94和相加器92各自的第二輸入端。雖然在圖7中沒有詳細(xì)示出,位a3至a7和位b3至b7的每一位均被提供給第一組多個相加器中相應(yīng)的那個相加器(未畫出)。第一組多個相加器中的每一個(未畫出)所起的作用與相加器92至100是一樣的,因此,也就有一樣的結(jié)構(gòu)。
標(biāo)記為“CO”的信號被提供給低進(jìn)位超前邏輯104的第一輸入端和相加器100的第三輸入端。相加器100輸出一個標(biāo)記為“SO”的“和”信號。另外,相加器100把標(biāo)記為“PO”的傳播信號和標(biāo)記為“GO”的發(fā)生信號提供給低進(jìn)位超前邏輯電路104。
標(biāo)記為“C1”的信號被提供給相加器98的第三輸入端。相加器98提供一個標(biāo)記為“S1”的“和”信號。相加器98也產(chǎn)生一個傳播信號“P1”和一個發(fā)生信號“G1”。同樣,標(biāo)記為“C2”的信號被提供給相加器96的第三輸入端。相加器96提供一個標(biāo)記為“S2”的和輸出、一個標(biāo)記為“P2”的傳播信號以及標(biāo)記為“G2”的發(fā)生信號。同樣,標(biāo)記為“C8”的信號被提供給相加器94的第三輸入端。相加器94輸出一個標(biāo)記為“S8”的和信號、一個標(biāo)記為“P8”的傳播信號以及一個標(biāo)記為“G8”的發(fā)生信號。標(biāo)記為“C9”的進(jìn)位信號提供了相加器92的第三輸入。相加器92輸出一個標(biāo)記為“S9”的和信號、一個標(biāo)記為“P9”的傳播信號以及一個標(biāo)記為“G9”的發(fā)生信號。由相加器92至100所輸出的每個傳播信號和發(fā)生信號均被提供給低進(jìn)位超前邏輯電路104。
低進(jìn)位超前邏輯電路104將標(biāo)記為“C10”的進(jìn)位信號提供給緩沖器90。分離方式的控制信號也被提供給緩沖器90。緩沖器90提供一個標(biāo)記為“Cin”的信號。
A輸入高端信號提供了第一組多個位,分別標(biāo)記為“a10”,“a11”,“a12”,“a18”和“a19”。位a10被輸入至相加器88的第一輸入端。同樣,位a11至a19中的每一個分別被提供給相加器86、相加器84、相加器82和相加器80的第一輸入端。B輸入高端信號提供了第二組多個位,分別標(biāo)記為“b10”,“b11”,“b12”,“b18”和“b19”。位b10被提供給相加器88的第二輸入端。同樣,位b11至位b19各自分別被提供給相加器86、相加器84、相加器82和相加器80的第二輸入端。雖然在圖7上未詳細(xì)畫出,位a13至a17和b13至b17分別被提供給第二組多個相加器中的相應(yīng)一個(未畫出)。第二組多個相加器的第一個(未畫出)所起的作用與相加器80至88是一樣的,因此,它們有相同的結(jié)構(gòu)。
Cin信號被提供給相加器88的第三輸入端。相加器88輸出一個標(biāo)記為“S10”的和信號。另外,相加器88提供標(biāo)記為“P10”的傳播信號和標(biāo)記為“G10”的發(fā)生信號給高進(jìn)位超前邏輯電路102。
標(biāo)記為“C11”的信號被提供給相加器86的第三輸入端。相加器86提供一個標(biāo)記為“S11”的和信號。相加器86還產(chǎn)生一個傳播信號“P11”和一個發(fā)生信號“G11”。同樣,標(biāo)記為“C12”的信號被提供給相加器84的第三輸入端。相加器84提供一個標(biāo)記為“S12”的和輸出、一個傳播信號“P12”和一個標(biāo)記為“G12”的發(fā)生信號。同樣,標(biāo)記為“C18”的信號被提供給相加器82的第三輸入端。相加器82輸出一個標(biāo)記為“S18”的和信號、一個標(biāo)記為“P18”的傳播信號和一個標(biāo)記為“G18”的發(fā)生信號。標(biāo)記為“C19”的進(jìn)位信號提供了相加器80的第三輸入。相加器80輸出一個標(biāo)記為“S19”的和信號、一個標(biāo)記為“P19”的傳播信號和一個標(biāo)記為“G19”的發(fā)生信號。由相加器80至88輸出的每個傳播信號和發(fā)生信號均被提供給高進(jìn)位超前邏輯電路102。高進(jìn)位超前邏輯電路102輸出一個標(biāo)記為“C20”的進(jìn)位信號。
盡管圖7上未畫出,由相加器92至100和低進(jìn)位超前邏輯電路104所產(chǎn)生的每一個進(jìn)位信號、和信號、傳播信號和發(fā)生信號也被提供給低狀態(tài)標(biāo)志電路108。J低信號也被提供給低狀態(tài)標(biāo)志電路108。同樣,由相加器80至88以及高進(jìn)位超前邏輯電路102所形成的每一個進(jìn)位信號、和信號、傳播信號和發(fā)生信號也被提供給高狀態(tài)標(biāo)志電路106。J高信號也被提供給高狀態(tài)標(biāo)志電路106。低狀態(tài)標(biāo)志電路108提供了多個信號,分別標(biāo)記為“S低”,“V低”,“N低”,“H低”和“Z低”。高狀態(tài)標(biāo)志電路106提供了多個信號,分別標(biāo)記為“S高”,“V高”,“N高”,“H高”和“Z高”。低狀態(tài)標(biāo)志電路108和高狀態(tài)標(biāo)志電路106的每一個輸出經(jīng)結(jié)果總線120傳送。
在執(zhí)行模糊邏輯運(yùn)算期間,數(shù)據(jù)處理系統(tǒng)20的用戶可以利用有記憶形式的指令MEM(資格評價的前三個字母)來完成系統(tǒng)輸入的模糊化。在此所述發(fā)明的實(shí)施例中,用戶必須在執(zhí)行MEM指令之前將待模糊化的輸入貯存到系統(tǒng)輸入寄存器64中。另外,用戶還必須在執(zhí)行單元14中第一個變址寄存器(未畫出)中存儲指針。指針指向識別資格組的梯形所需四個點(diǎn)的起始地址位置。正如圖2所述,這四個點(diǎn)分別標(biāo)記為點(diǎn)1,點(diǎn)2,斜率1和斜率2。在另一種格式中,用戶可以將這些值的每一個當(dāng)作指令的操作數(shù)來提供。這樣的技術(shù)在數(shù)據(jù)處理技術(shù)中為大家所熟知,故這里不予詳述。用戶還必須在執(zhí)行MEM指令之后,為已模糊化的數(shù)據(jù)規(guī)定一個貯存位置。在有一種格式中,第二個變址寄存器可以用來為已模糊化的數(shù)據(jù)指示該貯存位置。另外,系統(tǒng)輸入值應(yīng)存貯在累加器64中。
在本發(fā)明的實(shí)施例中,執(zhí)行MEM指令是按照圖8所表示的流程圖來完成的。流程圖提供了執(zhí)行MEM指令期間所完成每一個功能的簡單概述。每個功能更詳細(xì)的闡述將在執(zhí)行MEM指令的舉例時進(jìn)行。
正如圖8所示,當(dāng)MEM指令被譯碼的時候,就進(jìn)行了執(zhí)行MEM指令的第一步。存貯在變址寄存器中的地址被讀出,并被用于同時從內(nèi)部存儲器32的地址X存取點(diǎn)1和點(diǎn)2。然后,地址增加到下一地址點(diǎn),即X+2。
然后,增量1值和增量2值同時被產(chǎn)生。增量1值是把點(diǎn)2值從系統(tǒng)輸入寄存器64的存數(shù)中減去的結(jié)果。增量2值是把系統(tǒng)輸入寄存器64的存數(shù)從點(diǎn)2值中減去的結(jié)果。增量1值和增量2值均被貯存在增量寄存器60中。
接著,如果點(diǎn)1值等于$00,則ZP2信號被認(rèn)定且用1的二進(jìn)制值鎖住。同樣,如果點(diǎn)2值等于$FF,則ZP4信號被認(rèn)定且用1的二進(jìn)制值鎖住。
然后,斜率1和斜率2的值被從內(nèi)部存儲器32的地址X+2上取得并同時貯存在數(shù)據(jù)緩沖器42中。然后,地址增加到下一地址點(diǎn),即X+4。
增量1值和增量2值被測試,以決定二者中是否有負(fù)值。如果增量1值和增量2值中有一個是負(fù)值,那么,系統(tǒng)輸入值就處于現(xiàn)行正測試的資格組之外。因此,數(shù)據(jù)緩沖器42的內(nèi)容被清除,以強(qiáng)制資格度為$00。另外分別貯存在閂鎖器136和130中的ZP2和ZP4值被清除。
接著,增量1值和增量2值的每一個值的高四位被測試,以決定哪一值等于十六進(jìn)制值的$0。如果增量1值的高四位等于$,那么Z1標(biāo)志被認(rèn)定。同樣,如果增量2值的高四位等于$0,那么Z3標(biāo)志被認(rèn)定。
如果Z1標(biāo)志被認(rèn)定,則增量1值是乘數(shù)1值,且斜率1值是被乘數(shù)1值。否則,斜率1值是乘數(shù)1值而增量1值是被乘數(shù)1值。如果Z3標(biāo)志被認(rèn)定,則增量2值是乘數(shù)2值,且斜率2值是被乘數(shù)2值。否則,斜率2值是乘數(shù)2值而增量2值是被乘數(shù)2值。
接著被產(chǎn)生出增量1值和斜率1值的乘積。另外,增量2值和斜率2值和乘積在兩個同時進(jìn)行的相乘操作中被同時產(chǎn)生出來。
如果增量1值和斜率1值的乘積比$FF大,那么認(rèn)定高飽和標(biāo)志(S高)。另外,如果J高信號被認(rèn)定,那么S高信號被認(rèn)定。如果斜率1值和增量1值二者之中沒有一個值在其高四位中有一個十六進(jìn)制值$0,則J高被認(rèn)定。在點(diǎn)1和斜率1都有十六進(jìn)制值$00的特定情況下,J高也被認(rèn)定。如果點(diǎn)1值等于$00,則ZP2信號被認(rèn)定;如果斜率1值等于$00,則Z2信號被認(rèn)定。
同樣,如果增量2值和斜率2值和乘積比$FF大,那么認(rèn)定低飽和標(biāo)志(S低)。另外,如果J低信號被認(rèn)定,那么S低信號被認(rèn)定。如果斜率2值或增量2值二者之中沒有一個值在其高四位中有一個十六進(jìn)制值$0,則J低被認(rèn)定。另外,Z1信號和Z2信號必須被“取消”。在點(diǎn)2值有十六進(jìn)制值$FF和斜率2值有十六進(jìn)制值$00的特定情況下,J低也被認(rèn)定。如果點(diǎn)2值等于$FF,則ZP4信號被認(rèn)定;若斜率2值等于$00,則Z4信號被認(rèn)定。
如果S高信號和S低信號都被認(rèn)定,則系統(tǒng)輸入的資格度就是$FF。如果S高被“取消”而S低信號被認(rèn)定,則系統(tǒng)輸入的資格度等于增量1值和斜率1值的乘積。否則,資格度就等于增量2值和斜率2值的乘積。
然后,資格度被提供給內(nèi)部存儲器32中用戶所規(guī)定的地址,并且MEM指令的執(zhí)行被終止。
圖8的流程圖提供了數(shù)據(jù)處理系統(tǒng)10中執(zhí)行MEM指令的概述。現(xiàn)在我們將給出更詳細(xì)的舉例。
在操作期間,用戶可能通過貯存在外部或內(nèi)部存儲器32中的軟件程序?qū)EM指令提供給數(shù)據(jù)處理系統(tǒng)10。倘若MEM指令是由外部源提供給數(shù)據(jù)處理系統(tǒng)10的,那么MEM指令就經(jīng)外部數(shù)據(jù)總線33輸入到外部總線接口30。緊接著外部總線接口30就將MEM指令經(jīng)內(nèi)部數(shù)據(jù)總線34提供給CPU12。如果MEM指令由內(nèi)部存儲器32中的軟件程序提供,那么MEM指令就經(jīng)內(nèi)部數(shù)據(jù)總線34提供給CPU12。在CPU12中,執(zhí)行單元14將MEM指令提供給指令譯碼邏輯電路18以響應(yīng)從總線控制邏輯電路16、控制單元20和定序器22所接收到的控制信號。緊接著,指令譯碼邏輯電路18對MEM指令譯碼以便提供為正確執(zhí)行MEM指令需要的多個控制信號和信息信號。
當(dāng)接收并對MEM指令譯碼時,執(zhí)行單元14開始了系統(tǒng)輸入模糊化所需的步驟。正如上述,指定待模糊化的值的系統(tǒng)輸入,由數(shù)據(jù)處理系統(tǒng)10的用戶在執(zhí)行MEM指令前貯存在系統(tǒng)輸入寄存器64中。
除了系統(tǒng)輸入值外,數(shù)據(jù)處理系統(tǒng)10的用戶還要求輸入四個值,這四個值定義了模糊邏輯運(yùn)算的具體實(shí)現(xiàn)中的每個資格組。例如在圖1中,如果溫度被模糊化,那么有五個資格組需要被定義。因此,為了足以區(qū)別整個系統(tǒng)中的每個資格組就需要全部二十個值。正如前面圖2所指明并顯示的,為使單一的資格組一致化所需要的值是點(diǎn)1,點(diǎn)2,斜率1和斜率2。這些點(diǎn)的每一個都由八位二進(jìn)制值來代表。
在模糊化操作期間,必須相對于系統(tǒng)輸入值來評價每個資格組。在圖1所示的模糊邏輯系統(tǒng)的情況下,為系統(tǒng)輸入溫度出現(xiàn)了五個資格組評價。因此,重要的是要使決定每個資格組的資格度所需的時間總量最小。
變址寄存器中指針指向內(nèi)部存儲器32中點(diǎn)1值的地址。當(dāng)從內(nèi)部存儲器32存取時,點(diǎn)1值經(jīng)外部信息總線40被提供給數(shù)據(jù)緩沖器42。數(shù)據(jù)緩沖器40經(jīng)信息總線A66把點(diǎn)1值送到A輸入多路器54。A輸入多路器54緊接著將點(diǎn)1值提供給ALU56,在那里點(diǎn)1值被從系統(tǒng)輸入值中減去,以提供增量1值。增量1值經(jīng)信息總線B68被提供給增量寄存器60。另外,數(shù)據(jù)緩沖器42將點(diǎn)1值經(jīng)已被緩沖的數(shù)據(jù)1信號提供給標(biāo)志產(chǎn)生邏輯電路48。在圖5的標(biāo)志產(chǎn)生邏輯電路48中,點(diǎn)1值的每一位均被提供給或非門112的輸入端。或非操作的結(jié)果,即Z2信號,在按照時基控制信號所決定的時間點(diǎn)上被貯存在閂鎖136中。
在本發(fā)明的這個實(shí)施例中,點(diǎn)1值和點(diǎn)2值同時從內(nèi)部存儲器32中存取。這兩個值經(jīng)外部信息總線40傳送到數(shù)據(jù)緩沖器42。數(shù)據(jù)緩沖器42經(jīng)信息總線B68把點(diǎn)2值送到B輸入多路器58。B輸入多路器58緊接著把點(diǎn)2值提供給ALU56,在那里系統(tǒng)輸入值被減去以提供增量2值。信息總線B68把增量2值提供給增量寄存器60。另外,數(shù)據(jù)緩沖器42經(jīng)已被緩沖的數(shù)據(jù)2信號把點(diǎn)2值提供給標(biāo)志產(chǎn)生邏輯電路48。在圖5的標(biāo)志產(chǎn)生邏輯電路48中,點(diǎn)2值的每一位都被提供給與門138的輸入端。與操作的結(jié)果在按照時基控制信號所決定的時間點(diǎn)上被貯存在閂鎖130中?!芭c”操作檢測點(diǎn)2值是不是等于$FF。
ALU56執(zhí)行上述的每一次減操作,以使增量1和增量2值同時得到計(jì)算。當(dāng)在正常操作模式時,ALU56進(jìn)行16位算術(shù)運(yùn)算。另外,當(dāng)在分離操作模式時,ALU56能夠同時執(zhí)行兩個獨(dú)立的8位計(jì)算。由于兩個8位計(jì)算是同時進(jìn)行的,所以就不象ALU在只完成16位操作的情況那樣有周期被浪費(fèi)。因此,當(dāng)完成8位算術(shù)運(yùn)算時,ALU56大大提高了執(zhí)行單元14的速度和效率。緊接著我們將詳細(xì)討論ALU56的操作。
變址寄存器中的指針緊接著指向內(nèi)部存儲器32中斜率1值的地址。內(nèi)部存儲器32經(jīng)外部信息總線40將8位斜率1值和8位斜率2值提供給數(shù)據(jù)緩沖器42。數(shù)據(jù)緩沖器42經(jīng)16位已被緩沖的數(shù)據(jù)信號把兩個斜率值送到標(biāo)志產(chǎn)生邏輯部分48。
在計(jì)算出增量1和增量2值并接收到斜率1和斜率2值時,標(biāo)志產(chǎn)生邏輯電路48能夠產(chǎn)生多個標(biāo)志,它們是決定現(xiàn)正測試的資格組的資格度所需的。正如圖5所示,增量1值,增量2值,斜率1值和斜率2值的高四位分別被提供給或非門110、或非門116、或非門140和或非門146。
或非門140產(chǎn)生S2信號,而或非門146產(chǎn)生S4信號。當(dāng)斜率1值的高四位有十六進(jìn)制值$0時,S2信號被認(rèn)定。同樣,當(dāng)斜率2值的高四位有十六進(jìn)制值$0時,S4信號被認(rèn)定。
在標(biāo)志產(chǎn)生邏輯部分48中,斜率1值和斜率2值由已被緩沖的數(shù)據(jù)信號分別提供給或非門112和或非門118。當(dāng)斜率1值等于十六進(jìn)制$00時,Z2標(biāo)志被認(rèn)定。由或非門112產(chǎn)生的Z2標(biāo)志被提供給閂鎖136和與門134的數(shù)據(jù)輸入端。當(dāng)時基控制信號有第一預(yù)定邏輯值時,Z2標(biāo)志被認(rèn)定。由或非門112產(chǎn)生的Z2標(biāo)志被提供給閂鎖136和與門134的數(shù)據(jù)輸入端。當(dāng)時基控制信號有第一預(yù)定邏輯值時,Z2標(biāo)志被鎖在閂鎖136中。另外,當(dāng)時基控制信號有第二預(yù)定邏輯值時,閂鎖136將先前已被鎖住的ZP2信號提供給與門134。與門134被用來產(chǎn)生JP高信號。
當(dāng)斜率2值等于十六進(jìn)制$00時,Z4標(biāo)志被認(rèn)定。由或非門118產(chǎn)生的Z4標(biāo)志被提供給與門132。與門138的輸出被提供給閂鎖130的數(shù)據(jù)輸入。當(dāng)時基控制信號有第一預(yù)定邏輯值時與門138的輸出被鎖在閂鎖130中。另外,當(dāng)時基控制信號有第二預(yù)定邏輯值時,閂鎖130將先前已被鎖住的ZP4信號提供給與門132。與門132用來產(chǎn)生JP低信號。
僅當(dāng)增量1值高四位的每一位都被“取消”時,Z1標(biāo)志信號才被認(rèn)定。同樣,當(dāng)增量2值的高四位有一個十六進(jìn)制值$0時,Z3標(biāo)志信號才被認(rèn)定。標(biāo)志Z1和Z3中的每一個都緊接著被用在操作數(shù)分配步驟中,這將在后面作深入的討論。
除了增量1和增量2值之外,結(jié)果總線120也將N高和N低信號傳送給或門114以產(chǎn)生一個Nmem信號。如果由ALU56提供的增量2值小于0,則N低信號被認(rèn)定。同樣,如果由ALU56提供的增量1值小于0,則N高信號被認(rèn)定。正如前述,如果增量1值和增量2值中有一個值小于0,則系統(tǒng)輸入就不是正被檢驗(yàn)的資格組的成員。
因此當(dāng)Nmem信號被認(rèn)定時,系統(tǒng)輸入在正被測的資格組中的資格度為零。接著,Nmem信號被提供給A輸入控制邏輯52。當(dāng)Nmem信號被認(rèn)定時,它能使A輸入控制邏輯52去認(rèn)定A控制信號,致使A輸入多路器52將十六進(jìn)制值$00提供給ALU56。接著,ALU56經(jīng)信息總線B68將$00的值提供給數(shù)據(jù)緩沖器42。
另外,當(dāng)Nmem信號被認(rèn)定時,閂鎖130被復(fù)位,致使ZP4信號被“取消”。因此,JP低信號可以不被錯誤認(rèn)定。同樣,閂鎖136被復(fù)位,致使ZP2信號被取消。因此,JP高信號可以不被錯誤認(rèn)定。
Nmem信號、S2信號和Z1信號都被提供給或非門142以產(chǎn)生JS高信號。然后,JS高信號和JP高信號被進(jìn)行“或”運(yùn)算,以產(chǎn)生J高信號。
提供J高信號是為指示一種特定情況,即點(diǎn)1值和斜率1值都有一個十六進(jìn)制值$00。這種情況可能發(fā)生在資格組是一個部分梯形,致使資格度在點(diǎn)1邊界值上為一個$FF值的時候。圖1所示的冷溫度資格功能就是這特定情況的一個例子。當(dāng)輸入值落入正被評價的資格組內(nèi)時,J高被提供給ALU56,以強(qiáng)制飽和標(biāo)志S高被認(rèn)定。如果Z1、S2和Nmem信號均被“取消”時,J高信號亦被認(rèn)定。這符合這樣的情況,在此情況中增量1值和斜率1值都不是$OF或小于$OF,且現(xiàn)行的輸入在資格組之內(nèi)。
Nmem信號、S4信號和Z3信號都被提供給或非門148,以產(chǎn)生JS低信號。然后,JS低和JS高信號被“或”運(yùn)算,以產(chǎn)生J低信號。
提供J低信號是為指示一種特定情況,即點(diǎn)2值有一個十六進(jìn)制值$FF且斜率2值為一個十六進(jìn)制值$00。這種情況可能發(fā)生在資格組是一個部分梯形并致使資格度終止在點(diǎn)2邊界值上的$FF上的時候。圖1所示的熱溫度資格功能就是這種特定情況的一個例子。當(dāng)輸入值落入現(xiàn)正被評價的資格組內(nèi)時,J低信號被提供給ALU56,以強(qiáng)制飽和標(biāo)志S低被認(rèn)定。如果Z3、S4和Nmem信號均被“取消”,則J低信號亦被認(rèn)定。這對應(yīng)這樣的情況,即增量2和斜率2值都不是$OF或小于$OF,且現(xiàn)行的輸入在資格組內(nèi)。
但是,如果系統(tǒng)輸入值是在現(xiàn)正被檢驗(yàn)的資格組內(nèi),那么Nmem信號被“取消”,且Z1和Z3標(biāo)志信號被提供給操作數(shù)分配邏輯50和結(jié)果選擇邏輯46,以決定資格組中的資格度。
通過獲得定義資格組的梯形中飽和點(diǎn)的值、增量1和斜率1的乘積值或增量2和斜率2的乘積值三者中的最小值,來決定資格組中的資格度。在圖2所示的例子中,飽和點(diǎn)的十六進(jìn)制值是$FF,譯成小數(shù)值就成0.996,為了計(jì)算增量1和斜率1的乘積以及增量2和斜率2的乘積,開發(fā)了一種方法以確??焖傧喑诉\(yùn)算。正如現(xiàn)有技術(shù)中眾所周知的,當(dāng)乘數(shù)小于被乘數(shù)時,相乘運(yùn)算完成得比較快。如果,正如本例,資格組的飽和值為$FF,則數(shù)學(xué)分析表明,組成乘積的增量項(xiàng)或斜率項(xiàng)中至少有一項(xiàng)必須小于等于$OF。但有一種情況例外,那就是現(xiàn)行的系統(tǒng)輸入值在資格組之外或者在資格組的飽和區(qū)內(nèi)。
藉助于測試增量值和斜率值的四位高階位,就可以把小于等于十六進(jìn)制值$OF的第一項(xiàng)用作乘數(shù)。因此,用于完成相乘運(yùn)算所需的時間就縮短了。如果增量1值和斜率1值都比十六進(jìn)制值$OF大,那么J高信號就強(qiáng)制S高飽和標(biāo)志被認(rèn)定。同樣,如果增量2值和斜率2值都比十六進(jìn)制值$OF大,那么J低信號就強(qiáng)制S低飽和標(biāo)志被認(rèn)定。
Z1標(biāo)志信號用于表明增量1或斜率1值是不是被作為四位乘數(shù)1信號提供。同樣,Z3標(biāo)志信號用于表明增量2或斜率2值是不是被作為四位乘數(shù)2信號提供。圖6所示的操作數(shù)分配邏輯50提供了一種實(shí)現(xiàn)辦法,以決定被完成的兩個相乘運(yùn)算中每一個運(yùn)算的乘數(shù)值。
正如圖6所示,多路器72決定是指定增量1值為4位乘數(shù)1信號還是指定斜率1值為4位乘數(shù)1信號。如果Z1標(biāo)志信號被認(rèn)定,那么增量1值經(jīng)4位乘數(shù)1信號被傳送。如果Z1信號未被認(rèn)定,那么4位乘數(shù)1信號將被賦予斜率1的值。另外,如果Z1信號被指定,那么多路器74把斜率1值作為8位被乘數(shù)1信號提供給A高。如果Z1信號被“取消”,那么指定增量1值為8位被乘數(shù)1信號。
同樣,多路器76根據(jù)Z3標(biāo)志信號的值決定是增量2值為乘數(shù)2信號還是斜率2值為乘數(shù)2信號。如果Z3標(biāo)志信號被認(rèn)定,那么多路器76把增量2信號作為乘數(shù)2信號提供。如果Z3信號未被認(rèn)定,那么4位乘數(shù)2信號將被指定為斜率2的值。另外,如果Z3標(biāo)志信號被認(rèn)定,多路器78提供斜率2信號來作為被乘數(shù)2信號。如果Z3信號被“取消”,那么增量2值被指定為8位被乘數(shù)2信號。
乘數(shù)1和乘數(shù)2信號從操作數(shù)分配邏輯部分50傳送到A輸入控制邏輯電路52。A輸入控制邏輯電路52對乘數(shù)1和乘數(shù)2信號進(jìn)行處理,以提供A控制信號去決定A輸入多路器54的專用移位操作。
在操作期間,乘數(shù)1信號(它可能是增量1值也可能是斜率1值)被提供給A輸入控制邏輯52,以決定為完成第一次相乘操作,被乘數(shù)1信號是被移位0次、1次或2次。另外,A輸入控制邏輯部分52可把被乘數(shù)1信號取消或歸零。A控制信號被提供給A輸入多路器54,以表明行進(jìn)行的操作的型式。被乘數(shù)1信號經(jīng)信息總線A66高端傳送到A輸入多路器54。A輸入控制邏輯52按照A控制信號對被乘數(shù)1信號進(jìn)行修正,并將修正后的被乘數(shù)1信號提供給ALU56。同樣,乘數(shù)2信號(可能是增量2值也可能是斜率2值)也被提供給A輸入控制邏輯52。乘數(shù)2信號被用來使被乘數(shù)2信號移位0次、1次或2次,以同時完成第二次相乘操作。此外,A輸入控制邏輯52可使被乘數(shù)2信號為“非”或0。乘數(shù)2信號經(jīng)信息總線A66的低端被傳送到A輸入多路器54。A輸入控制邏輯52按照A控制信號對被乘數(shù)2信號進(jìn)行修正,并接著將修正后的被乘數(shù)2信號提供給ALU56。
B輸入多路器58的控制由MEM指令譯碼期間所產(chǎn)生的外部微ROM控制信號來提供并經(jīng)微ROM控制總線65傳送。這樣的微ROM控制信號的產(chǎn)生、發(fā)送以及運(yùn)用,在數(shù)據(jù)處理技術(shù)中是熟知的,在此不將贅述。在此所述的例子中,預(yù)置的局部乘積$00經(jīng)B輸入多路器58提供給ALU56。
在從A輸入控制邏輯電路52接收適當(dāng)?shù)腁控制信號時,A輸入多路器54提供修正后的被乘數(shù)1信號和修正后的被乘數(shù)2信號給ALU56的高端和低端。同時,B輸入多路器58把預(yù)置的局部乘積分別提供給ALU56的高端和低端。
圖7中更詳細(xì)地畫出了ALU56。在操作期間,修正后的被乘數(shù)2信號被提供給相加器92至100中的對應(yīng)一個相加器。修正后的被乘數(shù)2信號的位9標(biāo)記為“a9”連接至相加器92的第一輸入端。同樣,修正后的被乘數(shù)2信號的第8至0位分別被連接至相加器94,96,98和100的第一輸入端。預(yù)置的標(biāo)記為“b9”的局部乘積的位9被連接到相加器92的第二輸入端。預(yù)置的局部乘積的第8至0位也分別被連接到相加器94,96,98和100的第二輸入端。
標(biāo)記為“CO”的進(jìn)位信號被提供給相加器100的第三輸入端。CO信號通常由ALU56之外的源來提供,以響應(yīng)正在執(zhí)行的操作和乘數(shù)2信號的值。根據(jù)三個輸入信號的每一個,相加器100提供三個輸出信號。第一個輸出信號是SO信號,它等于(1)SO=a0≈bo≈c0。
第二個輸出信號是發(fā)生信號GO,它等于(2)GO=a0·b0,第三個輸出信號是傳播信號PO,它等于(3)PO=a0+b0。
響應(yīng)于GO和PO信號,低進(jìn)位超前邏輯電路104產(chǎn)生一個C1信號,它被提供給相加器98的第三輸入端。C1信號表述為(4)C1=G0+P0·C0。
相應(yīng)于對a1,b1和c1信號,相加器98將標(biāo)記為“G1”的發(fā)生信號和標(biāo)記為“P1”的傳播信號提供給低進(jìn)位超前邏輯電路104。
響應(yīng)于G1,P1和C1信號,低進(jìn)位超前邏輯電路104產(chǎn)生一個C2信號,它被提供給相加器96的第三輸入端。C2信號由下列等式計(jì)算(5)C2=G1+P1(G0+P0)C0。
然后相加器96提供一個標(biāo)記為“G2”的發(fā)生信號和標(biāo)記為“P2”的傳播信號給低進(jìn)位超前邏輯電路104。
接著,低進(jìn)位超前邏輯電路104產(chǎn)生一個進(jìn)位信號,它被提供給ALU56低端上其余相加器(94,92)的第三輸入端。其余的進(jìn)位信號這樣計(jì)算先前的發(fā)生項(xiàng)加上先前的傳播項(xiàng)與進(jìn)位項(xiàng)之積。雖然這里沒畫出,另外的相加器被用來計(jì)算A輸入低端和B輸入低端所提供的第3至7位值之和。
在從最后的相加器(相加器92)接收傳播項(xiàng)和發(fā)生項(xiàng)時,低進(jìn)位超前邏輯電路104提供一個標(biāo)記為“C10”的進(jìn)位信號。C10信號被提供給緩沖器90。響應(yīng)于分離模式控制信號,緩沖器90把C10進(jìn)位信號前送至ALU56高端的下一個相加器或提供在其中產(chǎn)生的另一個進(jìn)位值。分離模式控制信號由執(zhí)行單元14以外的源提供。例如,在執(zhí)行MEM指令期間,分離模式控制信號在指令譯碼期間產(chǎn)生。另外,分離方式控制信號也許由數(shù)據(jù)處理系統(tǒng)10的用戶所規(guī)定的、指令以外的其它源來提供。
如果把C10進(jìn)位信號作為Cin進(jìn)位信號送到相加器88,那么ALU56的操作象典型的十六位算術(shù)邏輯單元一樣在技術(shù)上是熟知的。但是,如果Cin進(jìn)位信號是由低進(jìn)位超前邏輯電路104之外的其它源來提供的話,那么ALU56現(xiàn)正工作在分離模式。在分離模式操作中,ALU56可同時提供兩個8位的、相互無關(guān)的結(jié)果。在執(zhí)行MEM指令期間,ALU56工作在分離模式,以同時提供增量1和斜率1值和乘積以及增量2和斜率2值的乘積。另外,ALU56在分離模式下操作時還計(jì)算增量1和增量2的值。因此,由于在分離模式操作,ALU56有能力提供快而有效的八位操作的結(jié)果。
另外,在ALU56中,低狀態(tài)標(biāo)志電路108提供關(guān)于ALU56低端操作的狀態(tài)信息。低狀態(tài)標(biāo)志電路108提供多數(shù)狀態(tài)信號S低,V低、N低,H低和Z低,這些信號的每一個均經(jīng)結(jié)果總線120傳送。雖然這里未示出,相加器92至100的每個輸出均被提供給低狀態(tài)標(biāo)志電路108。在數(shù)據(jù)處理技術(shù)中這些線路是眾所周知且很容易用普通的技術(shù)實(shí)現(xiàn)。每個狀態(tài)信號都由多個“和”信號及ALU56低端產(chǎn)生的“進(jìn)位”信號組合決定。
在此所述發(fā)明的實(shí)現(xiàn)中,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經(jīng)結(jié)果總線120傳送。相加器92至100輸出的“和”信號代表了乘數(shù)2和被乘數(shù)2信號之乘積的相應(yīng)位。而乘數(shù)2和被乘數(shù)2信號之乘積等于增量2和斜率2信號之乘積。
在操作期間,ALU56高階端起的作用與低階端相類同。標(biāo)記為“Cin”的進(jìn)位信號被提供給相加器88的第三輸入端。正如前面提到的,Cin信號可以由ALU56之外的源提供,也可以由從低進(jìn)位超前邏輯電路104來的C10進(jìn)位信號提供。根據(jù)三個輸入信號的每一個,相加器提供三個輸出信號。第一個輸出信號S10等于(11)S10=a10≈b10≈Cin。
第二個輸出信號是發(fā)生信號G10,它等于(12)G10=a10·b10。
第三個輸出信號是傳播信號P10,它等于(13)P10=a10+b10。
響應(yīng)于G10信號和P10信號,高進(jìn)位超前邏輯電路102產(chǎn)生一個C11信號,它被提供給相加器86的第三輸入端。C11信號表述為(14)C11=G10+P10·C10。
響應(yīng)于a11,b11和c11信號,相加器86提供一個標(biāo)記為“G11”的發(fā)生信號和標(biāo)記為“P11”的傳播信號給高進(jìn)位超前邏輯電路102。
響應(yīng)于G11,P11和C11信號,高進(jìn)位超前邏輯電路102產(chǎn)生一個C12信號;它被提供給相加器84第三輸入端。C12信號由下列等式計(jì)算
(15)C12=G11+P11(G10+P10)C10。
然后,相加器84提供一個標(biāo)記為“G12”的發(fā)生信號和標(biāo)記為“P12”的傳播信號給高進(jìn)位超前邏輯電路102。
接著,高進(jìn)位超前邏輯電路102產(chǎn)生一個進(jìn)位信號;該信號被提供給ALU56高端上的其余相加器(80,82)的第三輸入端。每個其余的進(jìn)位信號這樣計(jì)算先前的發(fā)生項(xiàng)加上先前的傳播項(xiàng)與進(jìn)位項(xiàng)之乘積。雖然這里未示出,另一些相加器用來計(jì)算A輸入高端和B輸入高端所提供的第13至17位值之和。
從最后一個相加器即相加器80接收到傳播項(xiàng)和發(fā)生項(xiàng)時,高進(jìn)位超前邏輯電路102提供一個標(biāo)記為“C20”的進(jìn)位信號。C20信號從ALU56經(jīng)結(jié)果總線120輸出用于序列操作。
另外,在ALU56中,高狀態(tài)標(biāo)志電路106提供關(guān)于ALU56高端操作的狀態(tài)信息。高狀態(tài)標(biāo)志電路106提供多個狀態(tài)信號S高,V高,N高,H高和Z高,這些信號的每一個均經(jīng)結(jié)果總線120傳送。相加器80至88的每一個輸出均被提供給高狀態(tài)標(biāo)志電路106。同樣,這些線路在數(shù)據(jù)處理技術(shù)中是眾所周知且很容易用一種普通技術(shù)來實(shí)現(xiàn)。每個狀態(tài)信號由ALU56高端所產(chǎn)生的多個和信號以及進(jìn)位信號聯(lián)合決定。
在此所述發(fā)明的實(shí)現(xiàn)中,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經(jīng)結(jié)果總線120傳送。相加器80至88輸出的和信號代表乘數(shù)1和被乘數(shù)1信號之乘積的相應(yīng)位。又,乘數(shù)1和被乘數(shù)1信號之乘積等于增量1和斜率1信號的乘積。
從ALU56高端和低端來的每一個狀態(tài)位接著被提供給結(jié)果選擇邏輯46。接著,結(jié)果選擇邏輯46用S低和S高信號決定增量1和斜率1信號之乘積、增量2和斜率2信號之乘積或飽和值$FF是否將被提供來作為正被檢驗(yàn)的資格組的資格度。
系統(tǒng)輸入值落入資格組梯形內(nèi)的所有情況中,要么S高被認(rèn)定,要么S低將被認(rèn)定,要么S高和S低均被認(rèn)定。如果S低和S高信號均被認(rèn)定,則系統(tǒng)輸入是正受測資格組成的成員并具有飽和點(diǎn)的資格度(在本例中為飽和點(diǎn)為$FF)。因此,當(dāng)S低和S高信號均被認(rèn)定時,結(jié)果選擇邏輯電路46認(rèn)定強(qiáng)制信號$FF強(qiáng)制數(shù)據(jù)緩沖器42的內(nèi)容是$FF,表示系統(tǒng)輸入是資格組的成員且有資格度$FF。
如果S低信號被“認(rèn)定”,而S高信號被“取消”,則結(jié)果選擇邏輯電路46認(rèn)定選擇信號將增量1和斜率1信號的乘積貯存于數(shù)據(jù)緩中器42之中。同樣,如果S低信號被“取消”,而S高信號被認(rèn)定,則結(jié)果選擇邏輯電路使選擇信號被“取消”,以將增量2和斜率2信號貯存于數(shù)據(jù)緩沖器42之中。
如果S高和S低都被“取消”,則系統(tǒng)輸入值不在邊界值定義的資格組梯形之內(nèi)。在系統(tǒng)輸入值落入資格組梯形之外的所有情況中,Nmem信號將被認(rèn)定。Nmem信號又引起A輸入控制邏輯52在相乘操作期間選擇零為ALU56的輸入。結(jié)果選擇邏輯電路46使強(qiáng)制信號$FF和選擇信號被“取消”,且十六進(jìn)制值$00被貯存在數(shù)據(jù)緩沖器42中。因此,結(jié)果選擇邏輯電路46決定了MEM資格度計(jì)算的結(jié)果值并將該結(jié)果提供給數(shù)據(jù)緩沖器42。當(dāng)數(shù)據(jù)緩沖器42受到執(zhí)行單元42以外的源的請求時,它經(jīng)外部信息總線40提供該結(jié)果。
這里提供了一個電路和方法,用于只有一個軟件指令來決定資格組的資格度。在此所述的例子中,軟件指令就是MEM指令。當(dāng)用MEM指令編程時,數(shù)據(jù)處理系統(tǒng)10能夠只用一個軟件指令來決定資格組的資格度,且可以完成得十分快捷。先前的實(shí)施方法需要極大量的軟件碼,這顯然需要很多的執(zhí)行時間。在一個完成資格度計(jì)算的典型軟件程序中,MEM指令將減輕軟件指令的有效數(shù)目。例如,利用MC68HC11指令組實(shí)現(xiàn)的軟件程序來完成資格度計(jì)算,典型地需要31條指令。MEM指令都替代了MC68HC11程序中所有31條指令。另外,MEM指令提供一個結(jié)果要比先前的軟件實(shí)現(xiàn)資格度計(jì)算快71個周期。
MEM指令能夠較快而有效地實(shí)現(xiàn)資格度的計(jì)算是因?yàn)樗菙?shù)據(jù)處理系統(tǒng)10的指令組的一個成員。我們知道,指令作為指令組的一個成員,其執(zhí)行起來要比外部程序快,外部程序要對數(shù)據(jù)處理系統(tǒng)10進(jìn)行編程以模擬該指令。另外,由操作數(shù)分配邏輯電路50所完成的作用也有助于增強(qiáng)實(shí)現(xiàn)MEM指令的數(shù)據(jù)處理系統(tǒng)10的功能。操作數(shù)分配邏輯電路50識別出用在計(jì)算資格度時的乘數(shù)和被乘數(shù)二者至少有一個必須是高四位有十六進(jìn)制值$0。因此,使高四位有$0的值作乘數(shù),相乘操作將會以更有條理的方式更快更完整地進(jìn)行。
另外,在分離模式下操作ALU56可以同時產(chǎn)生兩個8位結(jié)果,所以時間還可進(jìn)一步節(jié)省。當(dāng)在分離操作模式時,ALU56提供一個可以用來產(chǎn)生兩個8位結(jié)果的唯一的電路;而在非分離操作模式下,則產(chǎn)生一個16位的結(jié)果。由于這里所述例子的性質(zhì),在增量值和斜率值的減和乘時,只產(chǎn)生8位結(jié)果。因此,在執(zhí)行MEM指令期間,ALU56可以運(yùn)作在分離模式并且減和乘這兩個運(yùn)算可以同時完成。所以,分離方式操作時,完成這些操作所典型地需要的時間被有效地減半。
這里所述發(fā)明的實(shí)現(xiàn)僅用舉例方法提供。但是,為執(zhí)行這里所述的功能可以有許多其它的實(shí)施方案。例如,定義資格組所需要的點(diǎn)可以由數(shù)據(jù)處理系統(tǒng)10的用戶作為MEM指令的操作數(shù)來提供,而不是象先前貯存在存儲器中的數(shù)據(jù)值。另外,ALU56可以設(shè)置成能獲得32位結(jié)果。在乘或減運(yùn)算的情況中,在分離模式操作期間,高端和低端都將產(chǎn)生一個十六位的結(jié)果。
雖然在這里描述了本發(fā)明的原理,但本領(lǐng)域技術(shù)人員應(yīng)清楚地明白,這里的描述僅是以舉例的方法來進(jìn)行的,不能作為對本發(fā)明范圍的限制。因此,借助所附的權(quán)利要求書,本發(fā)明應(yīng)覆蓋屬于其真正的精神和范圍之內(nèi)的所有變形。
權(quán)利要求
1.用于在數(shù)據(jù)處理系統(tǒng)中進(jìn)行模糊邏輯運(yùn)行的一種方法,該模糊邏輯運(yùn)算決定了由多個邊界值限定的預(yù)定資格組中輸入點(diǎn)的資格,該方法的特征在于以下步驟為開始在數(shù)據(jù)處理系統(tǒng)中執(zhí)行模糊邏輯運(yùn)算,接收一個資格評價指令;對資格評價指令進(jìn)行譯碼以提供多個控制信號;從輸入值中減去多邊界值中的第一個值以產(chǎn)生第一個增量值,并同時從多上邊界值中的第二個值中減去該輸入值以產(chǎn)生第二個增量值;將第一個增量值與多個邊界值中的第三個值相乘以提供第一個結(jié)果,并同時將第二個增量值與多個邊界值中的第四個值相乘以提供第二個結(jié)果;提供一個資格度信號,該資格度信號表示當(dāng)?shù)谝粋€增量值或者第二個增量值小于零時,輸入點(diǎn)不包含在預(yù)定的資格組中,如果第一個增量值和第二個增量值都不小于零,那么資格度信號等于第一個結(jié)果、第二個結(jié)果或者多個邊界值中的第五個值這三者中的最小值。
2.權(quán)利要求1的方法,其特征在于下列步驟產(chǎn)生一個第一標(biāo)志信號以表示第一增量值的一個預(yù)定部分的值;產(chǎn)生一個第二標(biāo)志信號以表示第二增量值的一個預(yù)定部分的值。
3.權(quán)利要求2的方法,其特征在于下列步驟當(dāng)?shù)谝粯?biāo)志信號是一個第一預(yù)定邏輯電平時,提供第一增量值作為相乘運(yùn)算中的第一乘數(shù),多個邊界值的第三個值被提供作為第一被乘數(shù);當(dāng)?shù)谝粯?biāo)志信號是一個第二預(yù)定邏輯電平時,提供多個邊界值的第三個值作為相乘運(yùn)算中的第一乘數(shù),第一增量值被提供作為第一被乘數(shù);當(dāng)?shù)诙?biāo)志信號是一個第一預(yù)定邏輯電平時,提供第二增量值作為相乘運(yùn)算中第二乘數(shù),多個邊界值中的第四個值被提供作為第二被乘數(shù);當(dāng)?shù)诙?biāo)志信號是一個第二預(yù)定邏輯電平時,提供多個邊界值中的第四個值作為相乘運(yùn)算中的第二乘數(shù),第二增量值被提供作為第二被乘數(shù)。
4.權(quán)利要求1的方法,其中多個邊界值的第五個值是一個飽和值,該飽和值是資格組中的最大值。
5.一種用于進(jìn)行模糊邏輯運(yùn)算的數(shù)據(jù)處理系統(tǒng),該模糊邏輯運(yùn)算決定了在由多個邊界值定義的預(yù)定資格組中輸入點(diǎn)的資格,該數(shù)據(jù)處理系統(tǒng)的特征在于為在數(shù)據(jù)處理系統(tǒng)中開始執(zhí)行模糊邏輯運(yùn)算而接收一個資格評價指令的輸入裝置,輸入裝置也接收輸入點(diǎn);對資格評價指令進(jìn)行譯碼的指令譯碼裝置,指令譯碼裝置連接到為接收該資格評價指令的輸入裝置上;為貯存和提供多個邊界值的存儲器裝置;為在執(zhí)行模糊邏輯運(yùn)算期間貯存多數(shù)增量值的寄存器;一個與存儲器裝置相耦合的算術(shù)邏輯電路,用于有選擇地接收多個邊界值中的每一個,該算術(shù)邏輯電路耦合到輸入裝置以接收輸入點(diǎn),算術(shù)邏輯電路耦合到指令譯碼裝置以接收部分多數(shù)控制信號,該算術(shù)邏輯電路耦合到寄存器上以接收部分多個增量值,該算術(shù)邏輯電路產(chǎn)生第一和第二增量值或者產(chǎn)生第一和第二乘積;一個結(jié)果選擇器,其第一輸入端與算術(shù)邏輯電路相連以接收第一增量值,其第二輸入端與算術(shù)邏輯電路相連以接收第二增量值,其第三輸入端與算術(shù)邏輯電路相連以接收第一乘積,其第四輸入端與算術(shù)邏輯電路相連以接收第二乘積,其第五輸入端接收多個邊界值中的第五個值,該結(jié)果選擇器提供一個資格度信號,該資格度信號指明當(dāng)?shù)谝辉隽恐祷蛘叩诙隽恐涤幸粋€小于零時輸入點(diǎn)就不包含在預(yù)定的資格組中,如果第一增量值或第二增量值都不小于零則資格度信號等于第一結(jié)果、第二結(jié)果或多個邊界值中的第五個值這三個值中的最小值。
6.權(quán)利要求5的數(shù)據(jù)處理系統(tǒng),其進(jìn)一步的特征在于標(biāo)志產(chǎn)生電路,該標(biāo)志產(chǎn)生電路與相加器電路相耦合以接收第一增量值和第二增量值,標(biāo)志產(chǎn)生電路產(chǎn)生第一標(biāo)志信號以表明第一增量值的預(yù)定部分的值并產(chǎn)生第二標(biāo)志信號以表明第二增量值的預(yù)定部分的值。
7.權(quán)利要求5的數(shù)據(jù)處理系統(tǒng),其中多個控制信號的第一個信號表明第一增量值和第二增量值是同時被產(chǎn)生的。
8.權(quán)利要求5的數(shù)據(jù)處理系統(tǒng),其中多個控制信號的第二個信號表明第一乘積和第二乘積是同時被產(chǎn)生的。
9.一個用于執(zhí)行算術(shù)運(yùn)算的數(shù)據(jù)處理系統(tǒng),其特征在于用于接收多數(shù)據(jù)值的輸入裝置;用于產(chǎn)生多個控制信號以響應(yīng)多數(shù)數(shù)據(jù)值的控制裝置,該控制裝置與輸入裝置相耦合;其特征在于算術(shù)邏輯單元包括用于接收多個數(shù)據(jù)值和多個控制信號的輸入裝置;第一組多個相加器,其每一個具有用于接收多個數(shù)據(jù)值的第一個值的第一部分的第一輸入端和用于接收多個數(shù)據(jù)值的第二個值的第一部分的第二輸入端,第一組多個相加器的每一個都提供一個和信號和一個進(jìn)位信號,第一組多個相加器的每一個相加器有用于接收一個起始進(jìn)位信號的第三輸入端,第一組多個相加器中的其他各個相加器均有用于接收由前一個相加器所產(chǎn)生的進(jìn)位信號的第三輸入端;第二組多個相加器,第二組相加器的每一個均有用于接收多數(shù)數(shù)據(jù)值的第一個值的第二部分的第一輸入端和用于接收多數(shù)數(shù)據(jù)值的第二個值的第二部分的第二輸入端,第二組多個相加器的每一個均提供一個和信號和一個進(jìn)位信號,第二組多個相加器中的第一個相加器有用于接收一個進(jìn)位入信號的第三輸入端,第二組多個相加器中的每個其余的相加器均有用接收由前一個相加器所產(chǎn)生的進(jìn)位信號的第三輸入端;一個緩沖器,它有與控制裝置相耦合以接收多個控制信號中的第一個信號的第一輸入端和用于接收由第一組多個相加器的最后一個相加器所產(chǎn)生的進(jìn)位信號的第二輸入端,緩沖器提供由第一組多個相加器的最后一個相加器所產(chǎn)生的進(jìn)位信號或一個作為信號中的進(jìn)位的預(yù)定數(shù)據(jù)值給第二多數(shù)相加器的第一個相加器以響應(yīng)多數(shù)控制信號的第一個信號。
10.權(quán)利要求9的數(shù)據(jù)處理系統(tǒng),其中多個控制信號中的第一個信號表明算術(shù)邏輯單元正運(yùn)行在分離操作模式,在此模式中兩個算術(shù)運(yùn)算可以同時完成。
全文摘要
本發(fā)明為在模糊邏輯運(yùn)算中決定資格組中輸入的資格度的電路和方法。資格度由單一的“MEM”軟件指令來計(jì)算。MEM指令決定了系統(tǒng)輸入的資格度是0還是飽和電平或是介乎二者之間的某個值。操作數(shù)分配電路和ALU使電路能很快地決定資格度。分配電路根據(jù)待相乘的值中有效位的數(shù)目決定相乘運(yùn)算的乘數(shù)。如果乘數(shù)小于被乘數(shù),那么可以以較短的時間完成相乘操作。另外,ALU運(yùn)行在分離操作模式下,能同時完成兩個8位的減操作和乘操作。
文檔編號G06F7/00GK1080411SQ9310669
公開日1994年1月5日 申請日期1993年6月5日 優(yōu)先權(quán)日1992年6月17日
發(fā)明者J·格里格·瓦爾特, 詹姆斯·M·西比格特羅斯, 詹姆斯·L·布羅斯吉尼 申請人:莫托羅拉公司