雙指令多浮點操作數(shù)除運(yùn)算控制器的制造方法
【專利摘要】一種雙指令多浮點操作數(shù)除運(yùn)算控制器,包括雙端口只讀只寫存儲器、命令及其多操作數(shù)寫時序控制模塊、浮點操作數(shù)讀時序控制模塊、存儲器數(shù)據(jù)空標(biāo)志控制器和配置運(yùn)算與輸出控制模塊;該控制器應(yīng)用FPGA設(shè)計硬連接控制電路,能夠存儲兩條指令,且雙指令能夠并行處理,一條指令執(zhí)行,另一指令待執(zhí)行;或一條指令執(zhí)行,另一指令寫入;或一條指令操作數(shù)正在寫入,同時被讀出處理;控制器內(nèi)部產(chǎn)生的寫時序脈沖控制連續(xù)寫入多個操作數(shù);與系統(tǒng)Clock同步的讀時序脈沖自主控制多個操作浮點數(shù)的除法運(yùn)算,不占用系統(tǒng)總線,執(zhí)行一條指令相當(dāng)于微處理器執(zhí)行多條除法指令,減少了系統(tǒng)對指令的取指、譯碼、浮點操作數(shù)傳輸和運(yùn)算結(jié)果寫回的操作次數(shù)。
【專利說明】雙指令多浮點操作數(shù)除運(yùn)算控制器
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種雙指令多浮點操作數(shù)除運(yùn)算控制器,尤其涉及一種基于采用FPGA并行操作電路硬連接的雙指令多浮點操作數(shù)除運(yùn)算控制電路及其時序控制方法。
【背景技術(shù)】
[0002]浮點數(shù)除運(yùn)算器實現(xiàn)2個32位符合IEEE754標(biāo)準(zhǔn)的浮點數(shù)除法運(yùn)算;除法運(yùn)算比加/減運(yùn)算、乘法運(yùn)算長數(shù)倍時間周期,每次運(yùn)算之前系統(tǒng)需要分時輸出2個浮點操作數(shù),或I個浮點操作數(shù),運(yùn)算器的2個操作數(shù)輸入需要2個寄存器,用以確保在除法運(yùn)算過程中輸入的被除數(shù)和除數(shù)的穩(wěn)定,微處理器在除法運(yùn)算過程中,能夠轉(zhuǎn)去處理其他程序,運(yùn)算結(jié)束之后分時讀出運(yùn)算結(jié)果;對于連續(xù)執(zhí)行多個操作數(shù)的除法運(yùn)算,且運(yùn)算結(jié)果作為被除數(shù),微處理器需要多次分時傳輸作為除數(shù)的操作數(shù)和作為被除數(shù)的運(yùn)算結(jié)果寫回的操作;浮點數(shù)除運(yùn)算器的設(shè)計也采用流水線執(zhí)行的方式,將運(yùn)算過程分為若干模塊,在微處理器控制部件發(fā)出的時序脈沖的控制下,多條浮點數(shù)除法運(yùn)算指令按照模塊順序執(zhí)行,流水線中的每條指令運(yùn)算結(jié)束都需要將運(yùn)算結(jié)果寫回;但對于所執(zhí)行的浮點數(shù)除法運(yùn)算需要應(yīng)用上一條運(yùn)算指令的運(yùn)算結(jié)果作為被除數(shù)的指令,則浮點數(shù)除法運(yùn)算的流水線操作失去作用,影響了浮點數(shù)除法運(yùn)算指令執(zhí)行的速度。
【發(fā)明內(nèi)容】
[0003]本發(fā)明的目的在于提供一種雙指令多浮點操作數(shù)除運(yùn)算控制器,應(yīng)用FPGA設(shè)計雙指令多浮點操作數(shù)除運(yùn)算控制器的硬連接電路;該控制器對于多浮點操作數(shù)除運(yùn)算指令的命令字及其多操作數(shù)采取連續(xù)寫入存儲的方法,其寫入存儲過程占用系統(tǒng)總線;控制器在執(zhí)行多浮點操作數(shù)除運(yùn)算指令的過程中,內(nèi)部產(chǎn)生與系統(tǒng)時鐘Clock信號同步的讀時序脈沖信號,在讀時序脈沖信號控制下自主完成讀出操作數(shù)執(zhí)行除法運(yùn)算,多浮點操作數(shù)除運(yùn)算指令的執(zhí)行過程不占用系統(tǒng)總線;該控制器能夠存儲兩條多浮點操作數(shù)除運(yùn)算指令,控制器處于正在讀出一條指令的浮點操作數(shù)執(zhí)行處理,另一條指令的運(yùn)算命令待執(zhí)行;或正在讀出一條指令的浮點操作數(shù)執(zhí)行運(yùn)算處理,另一條指令正在從系統(tǒng)寫入控制器;或正在從系統(tǒng)寫入一條指令的浮點多操作數(shù),且同時正在讀出該指令的浮點操作數(shù);控制器在指令的運(yùn)算命令處理過程中,系統(tǒng)能夠讀出執(zhí)行運(yùn)算命令過程中的中間運(yùn)算結(jié)果和最終運(yùn)
晳奸里
[0004]解決上述技術(shù)問題的技術(shù)方案是:一種雙指令多操作數(shù)浮點除運(yùn)算控制器,包括雙端口只讀只寫存儲器、命令字及其多操作數(shù)寫時序控制模塊、浮點操作數(shù)讀時序控制模塊、存儲器數(shù)據(jù)空標(biāo)志控制器和配置運(yùn)算與輸出控制模塊;
所述雙端口只讀只寫存儲器與命令字及其多操作數(shù)寫時序控制模塊、浮點操作數(shù)讀時序控制模塊、配置運(yùn)算與輸出控制模塊連接;
所述命令字及其多操作數(shù)寫時序控制模塊還與浮點操作數(shù)讀時序控制模塊、存儲器數(shù)據(jù)空標(biāo)志控制器、配置運(yùn)算與輸出控制模塊連接; 所述浮點操作數(shù)讀時序控制模塊還與存儲器數(shù)據(jù)空標(biāo)志控制器、配置運(yùn)算與輸出控制豐吳塊連接;
所述雙端口只讀只寫存儲器為雙端口存儲器,一個只寫端口,一個只讀端口,用于儲存多浮點操作數(shù)(下稱為操作數(shù));所述雙端口只讀只寫存儲器分為存儲器I和存儲器2兩個存儲區(qū)域;所述雙端口只讀只寫存儲器的寫地址高位輸入端AB7 j為“O”,或讀地址高位輸入端AB7_2為“O”,選中操作數(shù)存儲器的127個低地址存儲單元,即存儲器I ;寫地址高位輸入端AB7_1為“ I ”,或讀地址高位輸入端AB7_2為“ I ”,選中操作數(shù)存儲器的127個高地址存儲單元,即存儲器2 ;
所述命令字及其多操作數(shù)寫時序控制模塊控制完成指令的寫入和存儲,需要占用系統(tǒng)總線;一條指令包括9位命令字和若干個操作數(shù),操作數(shù)最多為127個;所述命令字及其多操作數(shù)寫時序控制模塊在雙端口只讀只寫存儲器的存儲器I或存儲器2為數(shù)據(jù)空,輸出寫指令允許信號,方允許被系統(tǒng)選中;被系統(tǒng)選中寫指令時,在系統(tǒng)WR信號的作用下,寫入除運(yùn)算命令字;被系統(tǒng)選中寫操作數(shù)時,其內(nèi)部產(chǎn)生與系統(tǒng)WR信號同步的寫時序脈沖;在寫時序脈沖的控制下,將操作數(shù)存儲在雙端口只讀只寫存儲器的存儲器I或存儲器2中;一條指令的最后一個操作數(shù)被寫入存儲后,轉(zhuǎn)換雙端口只讀只寫存儲器的寫高位地址輸入端AB7_1狀態(tài),如果雙端口只讀只寫存儲器的存儲器I和存儲器2都非空,停止命令字及其多操作數(shù)寫時序控制模塊的工作;
所述浮點操作數(shù)讀時序控制模塊在內(nèi)部讀時序脈沖的控制下,自主完成多浮點操作數(shù)從雙端口只讀只寫存儲器中讀出,不需要占用系統(tǒng)總線;所述浮點操作數(shù)讀時序控制模塊產(chǎn)生與系統(tǒng)時鐘Clock信號同步的讀時序脈沖序列,按順序?qū)⒉僮鲾?shù)讀出參與除運(yùn)算;當(dāng)參與運(yùn)算的最后一個操作數(shù)讀出之后,產(chǎn)生讀地址溢出信號,然后再經(jīng)過一個除運(yùn)算周期,發(fā)出讀運(yùn)行狀態(tài)結(jié)束的信號,產(chǎn)生一個時鐘周期Clock的結(jié)果鎖存脈沖,然后再發(fā)出啟動使能信號;
所述浮點操作數(shù)讀時序控制模塊依據(jù)存儲器數(shù)據(jù)空標(biāo)志控制器的空標(biāo)志狀態(tài)讀出操作數(shù),有下面4種工作狀態(tài):
O所述存儲器數(shù)據(jù)空標(biāo)志控制器無存儲器I空、存儲器2空的標(biāo)志輸出,表明存儲器1、存儲器2都為數(shù)據(jù)非空,,一個非空的存儲器正在寫入指令的命令字及其操作數(shù)或?qū)懭脒^程已結(jié)束;另一個存儲器正在執(zhí)行讀出操作,如果存儲器讀出的操作數(shù)執(zhí)行運(yùn)算結(jié)束,啟動使能信號由“I”一 “0”,轉(zhuǎn)為一個存儲器空,另一個存儲器非空的狀態(tài),此時在讀出操作執(zhí)行結(jié)束后的第I個系統(tǒng)時鐘Clock的下降沿作為時序脈沖發(fā)生的啟動信號,向系統(tǒng)發(fā)送寫指令允許信號;啟動浮點操作數(shù)讀時序控制模塊的工作;
2)所述存儲器數(shù)據(jù)空標(biāo)志控制器輸出任何一個存儲器空的標(biāo)志,能夠處于兩種操作狀態(tài),一是非空的存儲器正在寫入操作數(shù),該存儲器同時執(zhí)行讀出操作;二是非空的存儲器只在執(zhí)行讀出操作,如果存儲器讀出的操作數(shù)執(zhí)行運(yùn)算結(jié)束,啟動使能信號由“ I” 一 “0”,轉(zhuǎn)為存儲器I和存儲器2都空的狀態(tài);
3)所述存儲器數(shù)據(jù)空標(biāo)志控制器同時輸出存儲器I空、存儲器2空的標(biāo)志,停止浮點操作數(shù)讀時序控制模塊的工作,向系統(tǒng)發(fā)送寫指令允許信號;
4 )所述存儲器數(shù)據(jù)空標(biāo)志控制器同時輸出存儲器I空、存儲器2空的標(biāo)志,且命令字及其多操作數(shù)寫時序控制模塊再次被系統(tǒng)選中寫入指令,命令字及其多操作數(shù)寫時序控制模塊輸出寫預(yù)置脈沖作為浮點操作數(shù)讀時序控制模塊的內(nèi)部時序脈沖發(fā)生器的啟動信號;所述配置運(yùn)算與輸出控制模塊根據(jù)命令字及其多操作數(shù)寫時序控制模塊輸出的第I個操作數(shù)的除法方式和浮點操作數(shù)讀時序控制模塊傳輸?shù)臅r序脈沖,選通配置第I個操作數(shù)是作為除運(yùn)算器的操作數(shù)I還是操作數(shù)2,選通配置運(yùn)算結(jié)果是作為除運(yùn)算器的操作數(shù)I還是操作數(shù)2,或運(yùn)算結(jié)果不參與執(zhí)行除法命令的第一次運(yùn)算;在浮點操作數(shù)讀時序控制模塊發(fā)出的結(jié)果鎖存信號作用下,鎖存除法運(yùn)算的運(yùn)算結(jié)果,并判斷運(yùn)算結(jié)果是否異常,如果出現(xiàn)異常,向系統(tǒng)發(fā)出IRQ信號,停止浮點操作數(shù)讀時序控制模塊的工作;當(dāng)使能信號CS2為“O”時,在系統(tǒng)RD信號的作用下能夠讀出中間運(yùn)算結(jié)果和命令執(zhí)行的最終運(yùn)算結(jié)果。
[0005]其進(jìn)一步技術(shù)方案是:所述命令字及其多操作數(shù)寫時序控制模塊包括模塊地址識另O、寫高位地址控制器、寫端口地址計數(shù)器、寫端口脈沖發(fā)生控制器、待執(zhí)行命令寄存器、執(zhí)行命令寄存器、非門1、非門I1、或門1、或門I1、或門II1、與門1、與門II和與門III;
所述模塊地址識別輸入端和系統(tǒng)地址總線AB的A31到A27線連接,CSl輸出端和或門II的一個輸入端連接,CS2輸出端和或門III的一個輸入端、寫端口脈沖發(fā)生控制器的使能輸入端、配置運(yùn)算與輸出控制模塊連接;
所述模塊地址識別內(nèi)部設(shè)置兩個地址值,一個是寫命令字地址值,一個是寫操作數(shù)地址值;所述模塊地址識別輸入A31到A27的地址值與模塊地址識別中設(shè)置的地址值進(jìn)行比較,如果和寫命令字地址值相等,則輸出CSl為“0”,如果和寫操作數(shù)地址值相等,則輸出CS2為“O” ;在任何時刻,CSl和CS2只有一個輸出為“O”,或輸出都為“I” ;
所述寫高位地址控制器的鎖存信號輸入端與寫端口地址計數(shù)器的寫溢出輸出端連接,寫高位地址輸入端和非門II的輸出端連接,復(fù)位輸入端和與門II的輸出端連接,輸出端和非門II的輸入端、雙端口只讀只寫存儲器的寫地址高位輸入端AB7_1、存儲器數(shù)據(jù)空標(biāo)志控制器連接;
所述寫高位地址控制器輸出的是雙端口只讀只寫存儲器的最高位地址值A(chǔ)B7_1 ;當(dāng)雙端口只讀只寫存儲器的存儲器I和存儲器2的數(shù)據(jù)都空時,或者當(dāng)系統(tǒng)復(fù)位信號Rst為“O”時,復(fù)位寫高位地址控制器,其輸出為“O”;當(dāng)寫高位地址控制器的鎖存信號輸入端由“I” 一 “O”時,寫高位地址控制器輸出端輸出的AB7_1狀態(tài)翻轉(zhuǎn);
所述寫端口地址計數(shù)器的操作數(shù)個數(shù)輸入端與系統(tǒng)數(shù)據(jù)總線DB的D6到DO線連接,寫預(yù)置脈沖輸入端和或門II的輸出端連接,寫計數(shù)脈沖輸入端與寫端口脈沖發(fā)生控制器的脈沖②_1輸出端連接,寫復(fù)位輸入端和系統(tǒng)復(fù)位信號Rst線連接,寫地址輸出端和雙端口只讀只寫存儲器的寫地址輸入端AB_1連接,寫溢出輸出端還和寫端口脈沖發(fā)生控制器的寫溢出輸入端、非門I的輸入端、存儲器數(shù)據(jù)空標(biāo)志控制器連接;
所述寫端口地址計數(shù)器實質(zhì)上是一個減I計數(shù)器,系統(tǒng)DB的D6到DO傳輸?shù)氖菂⑴c除運(yùn)算的操作數(shù)個數(shù)值,當(dāng)雙端口只讀只寫存儲器的存儲器I空或存儲器2空,且滿足模塊地址識別的CS2輸出端為“O”時,WR信號作為寫預(yù)置脈沖將操作數(shù)個數(shù)值作為雙端口只讀只寫存儲器寫端口的低7位地址初值預(yù)置給寫端口地址計數(shù)器,并將寫溢出輸出端設(shè)置為“I”狀態(tài);
所述寫端口地址計數(shù)器輸出雙端口只讀只寫存儲器的寫端口低7位地址值A(chǔ)B_1 ;當(dāng)寫計數(shù)脈沖輸入端來一個計數(shù)脈沖時,寫端口地址計數(shù)器進(jìn)行一次-1操作,直到寫地址輸出端為“0”,AB_1為“0”,此時寫溢出信號輸出端由“I”一 “0”,寫溢出信號作為寫端口地址計數(shù)器停止工作的標(biāo)志,使得寫高位地址控制器的鎖存信號輸入端由“I”一 “O”時,寫高位地址控制器輸出的AB7_1狀態(tài)翻轉(zhuǎn);寫端口地址計數(shù)器在系統(tǒng)復(fù)位信號Rst的作用下,復(fù)位寫端口地址計數(shù)器,使得寫溢出信號輸出端為“O”狀態(tài);
所述寫端口脈沖發(fā)生控制器的同步脈沖輸入端與系統(tǒng)寫信號WR線連接,啟動輸入端和與門III的輸出端連接,復(fù)位輸入端和系統(tǒng)復(fù)位信號Rst線連接,脈沖①」輸出端和雙端口只讀只寫存儲器的寫信號輸入端WR_1連接;
所述寫端口脈沖發(fā)生控制器的使能輸入端為“O”,在啟動輸入端的脈沖信號作用下啟動工作,發(fā)出與系統(tǒng)WR脈沖同步的脈沖①_1和脈沖②_1,脈沖①_1作為雙端口只讀只寫存儲器的寫入信號WR_1,脈沖②_1作為寫端口地址計數(shù)器的寫計數(shù)脈沖;所述寫端口地址計數(shù)器的寫溢出信號輸出端由“I”一“O”,寫端口脈沖發(fā)生控制器停止工作,脈沖①」和脈沖②_1的輸出端為“I”狀態(tài);
所述待執(zhí)行命令寄存器的命令輸入端和系統(tǒng)數(shù)據(jù)總線DB的D8到DO線連接,鎖存信號輸入端和或門II的輸出端連接,輸出端與執(zhí)行命令寄存器的命令輸入端連接;
所述執(zhí)行命令寄存器的鎖存信號輸入端與浮點操作數(shù)讀時序控制模塊連接,讀操作數(shù)個數(shù)輸出端、類型輸出端與浮點操作數(shù)讀時序控制模塊連接,方式輸出端與配置運(yùn)算與輸出控制模塊連接;
所述非門I的輸出端和或門I的一個輸入端連接;
所述或門I的另一個輸入端和與門I的輸出端連接,輸出端向系統(tǒng)輸出寫指令允許信
號;
所述或門II的另二個輸入端分別和與門I的輸出端、系統(tǒng)WR寫信號線連接,輸出端作為寫預(yù)置信號還與浮點操作數(shù)讀時序控制模塊連接;
所述或門III的另一個輸入端與系統(tǒng)WR寫信號線連接,輸出端和與門III的一個輸入端連接;
所述與門I的二個輸入端分別與存儲器數(shù)據(jù)空標(biāo)志控制器的存儲器I空輸出端、存儲器2空輸出端連接,輸出端還和與門III的另一個輸入端連接;
所述與門II的一個輸入端與存儲器數(shù)據(jù)空標(biāo)志控制器的存儲器I存儲器2數(shù)據(jù)都空輸出端連接,另一個輸入端與系統(tǒng)Rst復(fù)位信號線連接。
[0006]其進(jìn)一步技術(shù)方案是:所述存儲器讀時序控制模塊III包括讀高位地址控制器、讀端口地址計數(shù)器、讀端口脈沖發(fā)生控制器、異或非門、非門II1、非門IV、或門IV、或門V、與門IV、與門V、與門V1、與門Vn和與門VDI ;
所述讀高位地址控制器的鎖存信號輸入端與讀端口地址計數(shù)器的讀溢出輸出端連接,讀高位地址輸入端和非門III的輸出端連接,復(fù)位輸入端和與門IV的輸出端連接,輸出端與雙端口只讀只寫存儲器的讀地址高位輸入端ΑΒ7_2、非門III的輸入端、存儲器數(shù)據(jù)空標(biāo)志控制器連接;
所述讀高位地址控制器輸出的是雙端口只讀只寫存儲器讀端口的最高位地址值ΑΒ7_2,當(dāng)雙端口只讀只寫存儲器的存儲器I和存儲器2的數(shù)據(jù)都空時,或者當(dāng)系統(tǒng)復(fù)位信號Rst為“O”時,復(fù)位讀高位地址控制器,其輸出端為“O” ;當(dāng)讀高位地址控制器的鎖存信號輸入端由“I” 一 “O”時,寫高位地址控制器輸出的ΑΒ7_2信號翻轉(zhuǎn);
所述讀端口地址計數(shù)器的讀預(yù)置脈沖輸入端與讀端口脈沖發(fā)生控制器的脈沖②_2輸出端連接,讀計數(shù)脈沖輸入端和與門VDI的輸出端連接,復(fù)位輸入端和與門VI的輸出端連接,讀操作數(shù)個數(shù)輸入端與執(zhí)行命令寄存器的讀操作數(shù)個數(shù)輸出端連接,讀溢出輸出端還與讀端口脈沖發(fā)生控制器的讀溢出輸入端、存儲器數(shù)據(jù)空標(biāo)志控制器的讀溢出輸入端連接,讀地址輸出端與雙端口只讀只寫存儲器的讀地址輸入端AB_2連接;
所述讀端口地址計數(shù)器實質(zhì)上是一個減I計數(shù)器,讀預(yù)置脈沖將來自執(zhí)行命令寄存器6輸出的讀操作數(shù)個數(shù)預(yù)置給讀端口地址計數(shù)器,使得讀端口地址計數(shù)器的讀地址輸出端輸出的地址值A(chǔ)B_2為讀操作數(shù)個數(shù),讀端口地址計數(shù)器從讀操作數(shù)個數(shù)開始進(jìn)行-1計數(shù),當(dāng)讀計數(shù)脈沖輸入端來一個計數(shù)脈沖時,讀端口地址計數(shù)器進(jìn)行一次-1操作,直到讀地址輸出端為“O”,AB_2為“O”,表明最后一個操作數(shù)已讀出,溢出信號輸出端由“I”一 “O”,溢出信號也是讀端口地址計數(shù)器停止工作的標(biāo)志;當(dāng)輸入復(fù)位信號為“O”時,復(fù)位讀端口地址計數(shù)器,讀端口地址計數(shù)器停止計數(shù)工作,溢出輸出端為“O”;
所述讀端口脈沖發(fā)生控制器的同步脈沖輸入端與系統(tǒng)時鐘信號Clock線連接,啟動輸入端和與門V的輸出端連接,復(fù)位輸入端和與門VI的輸出端連接,類型輸入端與執(zhí)行命令寄存器的類型輸出端連接;脈沖①_2輸出端與執(zhí)行命令寄存器的鎖存信號輸入端連接,脈沖③_2輸出端和與門VII的一個輸入端、配置運(yùn)算與輸出控制模塊連接,脈沖@_2輸出端和與門VDI的一個輸入端、配置運(yùn)算與輸出控制模塊連接,脈沖?_2輸出端和與門VII的另一個輸入端連接,脈沖⑥_2輸出端和與門VDI的另一個輸入端連接,脈沖⑦_(dá)2輸出端和配置運(yùn)算與輸出控制模塊連接,脈沖⑧_2輸出端和配置運(yùn)算與輸出控制模塊連接,讀運(yùn)行狀態(tài)輸出端與存儲器數(shù)據(jù)空標(biāo)志控制器的讀運(yùn)行狀態(tài)輸入端連接,啟動使能輸出端和或門V的一個輸入端、存儲器數(shù)據(jù)空標(biāo)志控制器的啟動使能輸入端連接;
所述讀端口脈沖發(fā)生控制器輸出的脈沖與系統(tǒng)時鐘Clock同步;當(dāng)雙端口只讀只寫存儲器的存儲器I或存儲器2為數(shù)據(jù)空時,啟動使能輸出端由“I”一 “0”,啟動讀端口脈沖發(fā)生控制器開始工作;當(dāng)雙端口只讀只寫存儲器的存儲器I和存儲器2都為數(shù)據(jù)空時,在寫預(yù)置脈沖的作用下啟動輸出端由“I”一“0”,啟動讀端口脈沖發(fā)生控制器開始工作;啟動的同時置讀端口脈沖發(fā)生控制器的讀運(yùn)行狀態(tài)輸出端為“O”和啟動使能輸出端為“I”狀態(tài);當(dāng)讀運(yùn)行狀態(tài)為“I”時,表明沒有命令在執(zhí)行,或當(dāng)前命令已執(zhí)行結(jié)束;當(dāng)啟動使能信號為“O”時,表明沒有命令在執(zhí)行,以及執(zhí)行命令的運(yùn)算結(jié)果已鎖存;
所述讀端口脈沖發(fā)生控制器根據(jù)類型輸入信號為“O”還是為“ I ”,確定控制雙端口只讀只寫存儲器中讀操作數(shù)的脈沖序列;讀端口地址計數(shù)器輸出的溢出信號由“I”一 “0”,讀端口脈沖發(fā)生控制器經(jīng)過一個運(yùn)算周期時間,讀運(yùn)行狀態(tài)輸出端由“O” 一 “1”,置脈沖⑥_2輸出端為“1”,并發(fā)出一個系統(tǒng)時鐘Clock周期存最終運(yùn)算結(jié)果的脈沖⑦_(dá)2,啟動使能輸出端由“I” 一“0”,停止讀端口脈沖發(fā)生控制器的工作,置所有脈沖輸出端為“I”狀態(tài);當(dāng)輸入的復(fù)位信號為“O”時,復(fù)位讀端口脈沖發(fā)生控制器,復(fù)位使得讀運(yùn)行狀態(tài)輸出端為“I”狀態(tài),啟動使能輸出端為“0”,置所有脈沖輸出端為“I”狀態(tài),并停止讀端口脈沖發(fā)生控制器的工作;
所述異或非門的二個輸入端分別與存儲器數(shù)據(jù)空標(biāo)志控制器的存儲器I空輸出端、存儲器2空輸出端連接,輸出端和或門V的一個輸入端連接;
所述非門IV的輸入端和或門II的輸出端寫預(yù)置信號連接,輸出端和或門IV的一個輸入
端連接; 所述或門IV的另一個輸入端和存儲器數(shù)據(jù)空標(biāo)志控制器的存儲器I存儲器2都空輸出端連接,輸出端和與門V的一個輸入端連接;
所述或門V的輸出端和與門V的另一個輸入端連接;
所述與門IV的一個輸入端與存儲器數(shù)據(jù)空標(biāo)志控制器的存儲器I存儲器2都空輸出端連接,另一個輸入端和系統(tǒng)復(fù)位信號Rst線連接;
所述與門VI的一個輸入端與系統(tǒng)復(fù)位信號Rst線連接,另一個輸入端和配置運(yùn)算與輸出控制模塊連接;
所述與門VD的輸出端與雙端口只讀只寫存儲器的讀操作數(shù)輸入端RD_2連接。
[0007]其進(jìn)一步技術(shù)方案是:所述配置運(yùn)算與輸出控制模塊包括選通器、結(jié)果寄存器、操作數(shù)交換器、浮點數(shù)除運(yùn)算器、運(yùn)算異常標(biāo)志控制、32位三態(tài)門組、或門V1、與門IX、與門X和或門νπ ;
所述選通器的二個輸入端分別與雙端口只讀只寫存儲器的讀操作數(shù)輸出端DB_2、浮點數(shù)除運(yùn)算器的運(yùn)算結(jié)果輸出端連接,選通控制輸入端和與門IX的輸出端連接,輸出端與結(jié)果寄存器的輸入端連接;
當(dāng)脈沖③_2或脈沖④_2為“O”時,所述選通器輸出從雙端口只讀只寫存儲器讀出的第I個操作數(shù);當(dāng)脈沖③_2和脈沖④_2都為“ I ”時,選通器輸出運(yùn)算結(jié)果;
所述結(jié)果寄存器的輸出端與操作數(shù)交換器的交換數(shù)I輸入端、32位三態(tài)門組輸入端連接;結(jié)果鎖存信號輸入端和與門X的輸出端連接;
所述操作數(shù)交換器的交換數(shù)2輸入端與雙端口只讀只寫存儲器的讀操作數(shù)輸出端DB_2連接,交換控制端和或門VI的輸出端連接,二個輸出端分別與浮點數(shù)除運(yùn)算器的操作數(shù)I輸入端、操作數(shù)2輸入端連接;
所述浮點數(shù)除運(yùn)算器的運(yùn)算結(jié)果輸出端還與運(yùn)算異常標(biāo)志控制的運(yùn)算結(jié)果輸入端連
接;
所述運(yùn)算異常標(biāo)志控制的鎖存結(jié)果脈沖輸入端與讀端口脈沖發(fā)生控制器的鎖存結(jié)果脈沖⑦_(dá)2輸出端連接;IRQ輸出端和與門VI的一個輸入端連接,IRQ輸出端還向系統(tǒng)輸出中斷請求信號IRQ;當(dāng)中間運(yùn)算結(jié)果或最終運(yùn)算結(jié)果出現(xiàn)異常時,所述運(yùn)算異常標(biāo)志控制向系統(tǒng)發(fā)出中斷請求信號IRQ,并復(fù)位讀端口地址計數(shù)器和讀端口脈沖發(fā)生控制器,停止浮點操作數(shù)讀時序控制模塊的工作;
所述32位三態(tài)門組的輸出端與系統(tǒng)數(shù)據(jù)總線DB連接,控制端和或門VII的輸出端連
接;
所述或門VI的一個輸入端與執(zhí)行命令寄存器的方式輸出端連接,另一個輸入端與讀端口脈沖發(fā)生控制器的脈沖⑧_2輸出端連接;
所述與門IX的二個輸入端分別與讀端口脈沖發(fā)生控制器的脈沖③_2、脈沖④_2輸出端連接;
所述與門X的二個輸入端分別與讀端口脈沖發(fā)生控制器的脈沖④_2、脈沖⑦_(dá)2輸出端連接;
所述或門Vn的二個輸入端分別與模塊地址識別的CS2信號輸出端、系統(tǒng)讀信號RD線連接;當(dāng)CS2為“O”時,在系統(tǒng)RD信號的作用下,讀出中間運(yùn)算結(jié)果和命令執(zhí)行的最終運(yùn)算結(jié)
果O[0008]其進(jìn)一步技術(shù)方案是:所述浮點操作數(shù)讀時序控制模塊與執(zhí)行命令寄存器的類型輸出端連接;所述配置運(yùn)算與輸出控制模塊與執(zhí)行命令寄存器的方式輸出端連接;所述執(zhí)行命令寄存器輸出的方式和類型信號控制從雙端口只讀只寫存儲器讀出的第I個操作數(shù)參加除法運(yùn)算的操作數(shù)類型和除法方式:
當(dāng)操作數(shù)類型為“O”時:結(jié)果寄存器輸出的是運(yùn)算結(jié)果,操作數(shù)交換器的交換數(shù)I輸入端為運(yùn)算結(jié)果,操作數(shù)交換器的交換數(shù)2輸入端為從雙端口只讀只寫存儲器讀出的第I個操作數(shù);操作數(shù)交換器交換控制端輸入的脈沖⑧_2控制兩種除法運(yùn)算的處理方式:
除法方式為“O”:當(dāng)讀第I個操作數(shù)和執(zhí)行第I個操作數(shù)除法運(yùn)算時,脈沖@_2為“0”,則操作數(shù)交換器的控制端為“0”,交換數(shù)I輸入端的運(yùn)算結(jié)果作為操作數(shù)交換器輸出的操作數(shù)2,交換數(shù)2輸入端的第I個操作數(shù)作為操作數(shù)交換器輸出的操作數(shù)1,即操作數(shù)交換器的2個輸入和2個輸出進(jìn)行交換傳輸,執(zhí)行第I個操作數(shù)/運(yùn)算結(jié)果的除法運(yùn)算;
除法方式為“I”:當(dāng)讀第I個操作數(shù)和執(zhí)行第I個操作數(shù)除法運(yùn)算時,雖然脈沖⑧_2為“0”,但除法方式為“ I ”狀態(tài),使得操作數(shù)交換器的控制端為“ I ”,操作數(shù)交換器的2個輸入和2個輸出不進(jìn)行交換傳輸;執(zhí)行運(yùn)算結(jié)果/第I個操作數(shù)的除法運(yùn)算;
當(dāng)操作數(shù)類型為“I”時:第I個操作數(shù)的配置與除法方式信號狀態(tài)無關(guān),讀端口脈沖發(fā)生控制器的脈沖⑧_2輸出端為“ I ”狀態(tài),使得操作數(shù)交換器的控制端為“ I ”,操作數(shù)交換器的2個輸入和2個輸出不進(jìn)行交換傳輸;執(zhí)行第I個操作數(shù)/第2個操作數(shù)的除法運(yùn)算。
[0009]由于采用以上結(jié)構(gòu),本發(fā)明之雙指令多浮點操作數(shù)除運(yùn)算控制器具有以下有益效果:
一、一條指令的命令字及其多浮點操作數(shù)能夠連續(xù)寫入存儲
本發(fā)明之雙指令多操作數(shù)浮點除運(yùn)算控制器在除法命令字被寫入后,在內(nèi)部與系統(tǒng)WR脈沖同步的寫操作數(shù)時序脈沖的控制之下,能夠?qū)⒍鄠€浮點操作數(shù)全部按照順序連續(xù)寫入并存儲在雙端口只讀只寫存儲器中。
[0010]二、雙指令并行處理功能
本發(fā)明之雙指令多操作數(shù)浮點除運(yùn)算控制器內(nèi)部設(shè)置了一個雙端口只讀只寫存儲器,分為存儲器I和存儲器2兩個存儲區(qū)域,用于存儲兩條多操作浮點數(shù)除運(yùn)算指令的浮點操作數(shù);控制器能夠處于正在讀出一條指令的浮點操作數(shù)執(zhí)行處理,另一條指令的運(yùn)算命令待執(zhí)行;或正在讀出一條指令的浮點操作數(shù)執(zhí)行運(yùn)算處理,另一條指令正在從系統(tǒng)寫入控制器;或正在從系統(tǒng)寫入一條指令的浮點多操作數(shù),且同時正在讀出該指令的浮點操作數(shù)執(zhí)行運(yùn)算處理。
[0011]三、自主控制多浮點操作數(shù)除法的運(yùn)算
本發(fā)明之雙指令多操作數(shù)浮點除運(yùn)算控制器在指令的命令執(zhí)行過程中,控制器內(nèi)部產(chǎn)生與系統(tǒng)Clock同步的讀時序脈沖序列,在讀時序脈沖序列的控制下,從控制器的雙端口只讀只寫存儲器中讀出操作數(shù),自主完成該指令的所有操作數(shù)的除法運(yùn)算,不受系統(tǒng)控制。
[0012]四、自動選擇執(zhí)行第I個浮點操作數(shù)的處理方式
本發(fā)明之雙指令多操作數(shù)浮點除運(yùn)算控制器根據(jù)第I個浮點操作數(shù)的操作數(shù)類型和除法方式,對第I個浮點操作數(shù)有三種處理方式,一是第I個浮點操作數(shù)作為被除數(shù),實施第I個浮點操作數(shù)/第2個浮點操作數(shù)的除法運(yùn)算;二是第I個浮點操作數(shù)作為被除數(shù),實施第I個浮點操作數(shù)/運(yùn)算結(jié)果的除法運(yùn)算;三是第I個浮點操作數(shù)作為除數(shù),實施運(yùn)算結(jié)果/第I個浮點操作數(shù)的除法運(yùn)算。
[0013]五、控制器性價比高
本發(fā)明之雙指令多操作數(shù)浮點除運(yùn)算控制器以FPGA的硬連接控制電路為核心,應(yīng)用寫時序脈沖控制、讀時序脈沖控制,達(dá)到自主完成多操作浮點數(shù)除運(yùn)算的目的,并且雙指令多操作浮點數(shù)除運(yùn)算命令能夠并行處理;控制器能夠讀出中間運(yùn)算和最終運(yùn)算結(jié)果;每條多操作數(shù)浮點除運(yùn)算指令最多能夠有127個浮點操作數(shù),這樣一條多浮點操作數(shù)除運(yùn)算指令相當(dāng)于相同除法運(yùn)算的多條指令,減少了系統(tǒng)對命令的取指和譯碼、浮點操作數(shù)和運(yùn)算結(jié)果寫回的傳輸操作過程,提高了處理速度,具有較高的性價比。
[0014]下面結(jié)合附圖和實施例對本發(fā)明之雙指令多浮點操作數(shù)除運(yùn)算控制器的技術(shù)特征作進(jìn)一步的說明。
【專利附圖】
【附圖說明】
[0015]圖1:本發(fā)明之雙指令多浮點操作數(shù)除運(yùn)算控制器的系統(tǒng)結(jié)構(gòu)框圖;
圖2:本發(fā)明之雙指令多浮點操作數(shù)除運(yùn)算控制器的雙端口只讀只寫存儲器端口圖;
圖3:本發(fā)明之雙指令多浮點操作數(shù)除運(yùn)算控制器的命令字及其多操作數(shù)寫時序控制模塊的電路連接圖;
圖4:本發(fā)明之雙指令多浮點操作數(shù)除運(yùn)算控制器的存儲器數(shù)據(jù)空標(biāo)志控制器端口
圖;
圖5:本發(fā)明之雙指令多浮點操作數(shù)除運(yùn)算控制器的浮點操作數(shù)讀時序控制模塊的電路連接圖;
圖6:本發(fā)明之雙指令多浮點操作數(shù)除運(yùn)算控制器的配置運(yùn)算與輸出控制模塊的電路連接圖;
圖7:本發(fā)明之雙指令多浮點操作數(shù)除運(yùn)算控制器的存儲器I數(shù)據(jù)空邏輯判斷圖;
圖8:本發(fā)明之雙指令多浮點操作數(shù)除運(yùn)算控制器的存儲器2數(shù)據(jù)空邏輯判斷圖;
圖9:本發(fā)明之雙指令多浮點操作數(shù)除運(yùn)算控制器的寫命令字多浮點操作數(shù)時序圖;
圖10:本發(fā)明之雙指令多浮點操作數(shù)除運(yùn)算控制器的存儲器I和存儲器2數(shù)據(jù)空啟動時序圖;
圖11:本發(fā)明之雙指令多浮點操作數(shù)除運(yùn)算控制器的存儲器I或存儲器2數(shù)據(jù)空啟動時序圖;
圖12:本發(fā)明之雙指令多浮點操作數(shù)除運(yùn)算控制器的類型O讀多浮點操作數(shù)和結(jié)果鎖存時序圖;
圖13:本發(fā)明之雙指令多浮點操作數(shù)除運(yùn)算控制器的類型I讀多浮點操作數(shù)和結(jié)果鎖存時序圖。
[0016]圖中:
I 一雙端口只讀只寫存儲器,II一命令字及其多操作數(shù)寫時序控制模塊,III一浮點操作數(shù)讀時序控制模塊,IV—存儲器數(shù)據(jù)空標(biāo)志控制器,V—配置運(yùn)算與輸出控制模塊;
I一模塊地址識別,2—寫高位地址控制器,3—寫端口地址計數(shù)器,4一寫端口脈沖發(fā)生控制器,5—待執(zhí)行命令寄存器,6—執(zhí)行命令寄存器,7—非門1,8—非門II, 9一或門I,10—或門II,11 一或門III,12—與門I,13—與門II,14一與門III,15—讀高位地址控制器,16—讀端口地址計數(shù)器,17—讀端口脈沖發(fā)生控制器,18—異或非門,19—非門III,20—非門IV,21一或門IV,22一或門V,23一與門IV,24一與門V,25一與門VI,26一與門VII,27一與門珊,28—選通器,29—結(jié)果寄存器,30—操作數(shù)交換器,31—浮點數(shù)除運(yùn)算器,32—運(yùn)算異常標(biāo)志控制,33—32位三態(tài)門組,34—或門VI,35—與門IX,36—與門X,37—或門VII。
[0017]文中縮略語說明:
FPGA — Field Programmable Gate Array,現(xiàn)場可編程門陣列;
DB — Data Bus,數(shù)據(jù)總線;
AB — Address Bus,地址總線;
CS - Chip Select,片選或使能,圖中CS代表“使能信號”;
Clock —時鐘;
RD - Read,讀,圖中代表“讀信號”;
WR — Write,寫,圖中代表“寫信號”;
IRQ — Interrupt Request,中斷申請,圖中代表“中斷請求信號”;
Rst — Reset,復(fù)位。
【具體實施方式】
[0018]實施例:
一種雙指令多浮點操作數(shù)除運(yùn)算控制器,如圖1所示,該控制器包括雙端口只讀只寫存儲器1、命令字及其多操作數(shù)寫時序控制模塊I1、浮點操作數(shù)讀時序控制模塊II1、存儲器數(shù)據(jù)空標(biāo)志控制器IV、配置運(yùn)算與輸出控制模塊V ;
所述雙端口只讀只寫存儲器I與命令字及其多操作數(shù)寫時序控制模塊I1、浮點操作數(shù)讀時序控制模塊II1、配置運(yùn)算與輸出控制模塊V連接;
所述命令字及其多操作數(shù)寫時序控制模塊II還與浮點操作數(shù)讀時序控制模塊II1、存儲器數(shù)據(jù)空標(biāo)志控制器IV、配置運(yùn)算與輸出控制模塊V連接;
所述浮點操作數(shù)讀時序控制模塊III還與存儲器數(shù)據(jù)空標(biāo)志控制器IV、配置運(yùn)算與輸出控制模塊V連接;
所述雙端口只讀只寫存儲器I為雙端口存儲器,一個只寫端口,一個只讀端口,用于儲存多浮點操作數(shù)(下稱為操作數(shù));所述雙端口只讀只寫存儲器I分為存儲器I和存儲器2兩個存儲區(qū)域;所述雙端口只讀只寫存儲器I的寫地址高位輸入端AB7_1為“0”,或讀地址高位輸入端AB7_2為“O”,選中操作數(shù)存儲器的127個低地址存儲單元,即存儲器I ;寫地址高位輸入端AB7_1為“ I ”,或讀地址高位輸入端AB7_2為“ I ”,選中操作數(shù)存儲器的127個高地址存儲單元,即存儲器2 ;
所述命令字及其多操作數(shù)寫時序控制模塊II控制完成指令的寫入和存儲,需要占用系統(tǒng)總線;一條指令包括9位命令字和若干個操作數(shù),操作數(shù)最多為127個;所述命令字及其多操作數(shù)寫時序控制模塊II在雙端口只讀只寫存儲器I的存儲器I或存儲器2為數(shù)據(jù)空,輸出寫指令允許信號,方允許被系統(tǒng)選中;被系統(tǒng)選中寫指令時,在系統(tǒng)WR信號的作用下,寫入除運(yùn)算命令字;被系統(tǒng)選中寫操作數(shù)時,其內(nèi)部產(chǎn)生與系統(tǒng)WR信號同步的寫時序脈沖;在寫時序脈沖的控制下,將操作數(shù)存儲在雙端口只讀只寫存儲器I的存儲器I或存儲器2中;一條指令的最后一個操作數(shù)被寫入存儲后,轉(zhuǎn)換雙端口只讀只寫存儲器I的寫高位地址輸入端AB7_1狀態(tài),如果雙端口只讀只寫存儲器I的存儲器I和存儲器2都非空,停止命令字及其多操作數(shù)寫時序控制模塊II的工作;
所述浮點操作數(shù)讀時序控制模塊III在內(nèi)部讀時序脈沖的控制下,自主完成多浮點操作數(shù)從雙端口只讀只寫存儲器I中讀出,不需要占用系統(tǒng)總線;所述浮點操作數(shù)讀時序控制模塊III產(chǎn)生與系統(tǒng)時鐘Clock信號同步的讀時序脈沖序列,按順序?qū)⒉僮鲾?shù)讀出參與除運(yùn)算;當(dāng)參與運(yùn)算的最后一個操作數(shù)讀出之后,產(chǎn)生讀地址溢出信號,然后再經(jīng)過一個除運(yùn)算周期,發(fā)出讀運(yùn)行狀態(tài)結(jié)束的信號,產(chǎn)生一個時鐘周期Clock的結(jié)果鎖存脈沖,然后再發(fā)出啟動使能信號;
所述浮點操作數(shù)讀時序控制模塊III依據(jù)存儲器數(shù)據(jù)空標(biāo)志控制器IV的空標(biāo)志狀態(tài)讀出操作數(shù),有下面4種工作狀態(tài):
1)所述存儲器數(shù)據(jù)空標(biāo)志控制器IV無存儲器I空、存儲器2空的標(biāo)志輸出,表明存儲器1、存儲器2都為數(shù)據(jù)非空,一個非空的存儲器正在寫入指令的命令字及其操作數(shù)或?qū)懭脒^程已結(jié)束;另一個存儲器正在執(zhí)行讀出操作,如果存儲器讀出的操作數(shù)執(zhí)行運(yùn)算結(jié)束,啟動使能信號由“I”一 “0”,轉(zhuǎn)為一個存儲器空,另一個存儲器非空的狀態(tài),此時在讀出操作執(zhí)行結(jié)束后的第I個系統(tǒng)時鐘Clock的下降沿作為時序脈沖發(fā)生的啟動信號,向系統(tǒng)發(fā)送寫指令允許信號;啟動浮點操作數(shù)讀時序控制模塊III的工作;
2)所述存儲器數(shù)據(jù)空標(biāo)志控制器IV輸出任何一個存儲器空的標(biāo)志,能夠處于兩種操作狀態(tài),一是非空的存儲器正在寫入操作數(shù),該存儲器同時執(zhí)行讀出操作;二是非空的存儲器只在執(zhí)行讀出操作,如果存儲器讀出的操作數(shù)執(zhí)行運(yùn)算結(jié)束,啟動使能信號由“I” 一 “0”,轉(zhuǎn)為存儲器I和存儲器2都空的狀態(tài);
3)所述存儲器數(shù)據(jù)空標(biāo)志控制器IV同時輸出存儲器I空、存儲器2空的標(biāo)志,停止浮點操作數(shù)讀時序控制模塊III的工作,向系統(tǒng)發(fā)送寫指令允許信號;
4 )所述存儲器數(shù)據(jù)空標(biāo)志控制器IV同時輸出存儲器I空、存儲器2空的標(biāo)志,且命令字及其多操作數(shù)寫時序控制模塊II再次被系統(tǒng)選中寫入指令,命令字及其多操作數(shù)寫時序控制模塊II輸出寫預(yù)置脈沖作為浮點操作數(shù)讀時序控制模塊III的內(nèi)部時序脈沖發(fā)生器的啟動信號;
所述配置運(yùn)算與輸出控制模塊V根據(jù)命令字及其多操作數(shù)寫時序控制模塊II輸出的第I個操作數(shù)的除法方式和浮點操作數(shù)讀時序控制模塊III傳輸?shù)臅r序脈沖,選通配置第I個操作數(shù)是作為除運(yùn)算器的操作數(shù)I還是操作數(shù)2,選通配置運(yùn)算結(jié)果是作為除運(yùn)算器的操作數(shù)I還是操作數(shù)2,或運(yùn)算結(jié)果不參與執(zhí)行除法命令的第一次運(yùn)算;在浮點操作數(shù)讀時序控制模塊III發(fā)出的結(jié)果鎖存信號作用下,鎖存除法運(yùn)算的運(yùn)算結(jié)果,并判斷運(yùn)算結(jié)果是否異常,如果出現(xiàn)異常,向系統(tǒng)發(fā)出IRQ信號,停止浮點操作數(shù)讀時序控制模塊III的工作;當(dāng)使能信號CS2為“O”時,在系統(tǒng)RD信號的作用下能夠讀出中間運(yùn)算結(jié)果和命令執(zhí)行的最終運(yùn)算結(jié)果。
[0019]如圖3所示,所述命令字及其多操作數(shù)寫時序控制模塊II包括模塊地址識別1、寫高位地址控制器2、寫端口地址計數(shù)器3、寫端口脈沖發(fā)生控制器4、待執(zhí)行命令寄存器5、執(zhí)行命令寄存器6、非門I 7、非門II 8、或門I 9、或門II 10、或門III 11、與門I 12、與門II 13和與門III 14 ;
所述模塊地址識別I輸入端和系統(tǒng)地址總線AB的A31到A27線連接,CSl輸出端和或門II 10的一個輸入端連接,CS2輸出端和或門III 11的一個輸入端、寫端口脈沖發(fā)生控制器4的使能輸入端、配置運(yùn)算與輸出控制模塊V連接;
所述模塊地址識別I內(nèi)部設(shè)置兩個地址值,一個是寫命令字地址值,一個是寫操作數(shù)地址值;所述模塊地址識別I輸入A31到A27的地址值與模塊地址識別I中設(shè)置的地址值進(jìn)行比較,如果和寫命令字地址值相等,則輸出CSl為“0”,如果和寫操作數(shù)地址值相等,則輸出CS2為“O” ;在任何時刻,CSl和CS2只有一個輸出為“O”,或輸出都為“I” ;
所述寫高位地址控制器2的鎖存信號輸入端與寫端口地址計數(shù)器3的寫溢出輸出端連接,寫高位地址輸入端和非門II 8的輸出端連接,復(fù)位輸入端和與門II 13的輸出端連接,輸出端和非門II 8的輸入端、雙端口只讀只寫存儲器I的寫地址高位輸入端AB7_1、存儲器數(shù)據(jù)空標(biāo)志控制器IV連接;
所述寫高位地址控制器2輸出的是雙端口只讀只寫存儲器I最高位地址值A(chǔ)B7_1 ;當(dāng)雙端口只讀只寫存儲器I的存儲器I和存儲器2的數(shù)據(jù)都空時,或者當(dāng)系統(tǒng)復(fù)位信號Rst為“O”時,復(fù)位寫高位地址控制器2,其輸出為“O”;當(dāng)寫高位地址控制器2的鎖存信號輸入端由“I” 一 “O”時,寫高位地址控制器2輸出端輸出的AB7_1狀態(tài)翻轉(zhuǎn);
所述寫端口地址計數(shù)器3的操作數(shù)個數(shù)輸入端與系統(tǒng)數(shù)據(jù)總線的D6到DO線連接,寫預(yù)置脈沖輸入端和或門II 10的輸出端連接,寫計數(shù)脈沖輸入端與寫端口脈沖發(fā)生控制器4的脈沖②_1輸出端連接,寫復(fù)位輸入端和系統(tǒng)復(fù)位信號Rst線連接,寫地址輸出端和雙端口只讀只寫存儲器I的寫地址輸入端AB_1連接,寫溢出輸出端還和寫端口脈沖發(fā)生控制器4的寫溢出輸入端、非門I 7的輸入端、存儲器數(shù)據(jù)空標(biāo)志控制器IV連接;
所述寫端口地址計數(shù)器3實質(zhì)上是一個減I計數(shù)器,系統(tǒng)DB的D6到DO傳輸?shù)氖菂⑴c除運(yùn)算的操作數(shù)個數(shù)值,當(dāng)雙端口只讀只寫存儲器I的存儲器I空或存儲器2空,且滿足模塊地址識別I的CS2輸出端為“O”時,WR信號作為寫預(yù)置脈沖將操作數(shù)個數(shù)值作為雙端口只讀只寫存儲器I寫端口的低7位地址初值預(yù)置給寫端口地址計數(shù)器3,并將寫溢出輸出端設(shè)置為“I”狀態(tài);
所述寫端口地址計數(shù)器3輸出雙端口只讀只寫存儲器I的寫端口低7位地址值A(chǔ)B_1 ;當(dāng)寫計數(shù)脈沖輸入端來一個計數(shù)脈沖時,寫端口地址計數(shù)器3進(jìn)行一次-1操作,直到寫地址輸出端為“0”,AB_1為“0”,此時寫溢出信號輸出端由“I”一 “0”,寫溢出信號作為寫端口地址計數(shù)器3停止工作的標(biāo)志,使得寫高位地址控制器2的鎖存信號輸入端由“I” 一 “O”時,寫高位地址控制器2輸出的AB7_1狀態(tài)翻轉(zhuǎn);寫端口地址計數(shù)器3在系統(tǒng)復(fù)位信號Rst的作用下,復(fù)位寫端口地址計數(shù)器3,使得寫溢出信號輸出端為“O”狀態(tài);
所述寫端口脈沖發(fā)生控制器4的同步脈沖輸入端與系統(tǒng)寫信號WR線連接,啟動輸入端和與門III14的輸出端連接,復(fù)位輸入端和系統(tǒng)復(fù)位信號Rst線連接,脈沖①」輸出端和雙端口只讀只寫存儲器I的寫信號輸入端WR_1連接;
所述寫端口脈沖發(fā)生控制器4的使能輸入端為“0”,在啟動輸入端的脈沖信號作用下啟動工作,發(fā)出與系統(tǒng)WR脈沖同步的脈沖①_1和脈沖②_1,脈沖①_1作為雙端口只讀只寫存儲器I的寫入信號WR_1,脈沖②_1作為寫端口地址計數(shù)器3的寫計數(shù)脈沖;所述寫端口地址計數(shù)器3的寫溢出信號輸出端由“I” 一 “0”,寫端口脈沖發(fā)生控制器4停止工作,脈沖①_1和脈沖②_1的輸出端為“ I ”狀態(tài);
所述待執(zhí)行命令寄存器5的命令輸入端和系統(tǒng)數(shù)據(jù)總線DB的D8到DO線連接,鎖存信號輸入端和或門II 10的輸出端連接,輸出端與執(zhí)行命令寄存器6的命令輸入端連接;所述執(zhí)行命令寄存器6的鎖存信號輸入端與浮點操作數(shù)讀時序控制模塊III連接,讀操作數(shù)個數(shù)輸出端、類型輸出端與浮點操作數(shù)讀時序控制模塊III連接,方式輸出端與配置運(yùn)算與輸出控制模塊V連接;
所述非門I 7的輸出端和或門I 9的一個輸入端連接;
所述或門I 9的另一個輸入端和與門I 12的輸出端連接,輸出端向系統(tǒng)輸出寫指令允
許信號;
所述或門II 10的另二個輸入端分別和與門I 12的輸出端、系統(tǒng)WR寫信號線連接,輸出端作為寫預(yù)置信號還與浮點操作數(shù)讀時序控制模塊III連接;
所述或門III 11的另一個輸入端與系統(tǒng)WR寫信號線連接,輸出端和與門III14的一個輸入端連接;
所述與門I 12的二個輸入端分別與存儲器數(shù)據(jù)空標(biāo)志控制器IV的存儲器I空輸出端、存儲器2空輸出端連接,輸出端還和與門III 14的另一個輸入端連接;
所述與門II 13的一個輸入端與存儲器數(shù)據(jù)空標(biāo)志控制器IV的存儲器I存儲器2數(shù)據(jù)都空輸出端連接,另一個輸入端與系統(tǒng)Rst復(fù)位信號線連接。
[0020]如圖5所示,所述存儲器讀時序控制模塊III包括讀高位地址控制器15、讀端口地址計數(shù)器16、讀端口脈沖發(fā)生控制器17、異或非門18、非門III 19、非門IV 20、或門IV 21、或門V 22、與門IV 23、與門V 24、與門VI 25、與門VII 26和與門VDI 27;
所述讀高位地址控制器15的鎖存信號輸入端與讀端口地址計數(shù)器16的讀溢出輸出端連接,讀高位地址輸入端和非門III19的輸出端連接,復(fù)位輸入端和與門IV 23的輸出端連接,輸出端與雙端口只讀只寫存儲器I的讀地址高位輸入端ΑΒ7_2、非門III 19的輸入端、存儲器數(shù)據(jù)空標(biāo)志控制器IV連接;
所述讀高位地址控制器15輸出的是雙端口只讀只寫存儲器I讀端口的最高位地址值ΑΒ7_2,當(dāng)雙端口只讀只寫存儲器I的存儲器I和存儲器2的數(shù)據(jù)都空時,或者當(dāng)系統(tǒng)復(fù)位信號Rst為“O”時,復(fù)位讀高位地址控制器15,其輸出端為“O”;當(dāng)讀高位地址控制器15的鎖存信號輸入端由“I” 一 “O”時,寫高位地址控制器2輸出的ΑΒ7_2信號翻轉(zhuǎn);
所述讀端口地址計數(shù)器16的讀預(yù)置脈沖輸入端與讀端口脈沖發(fā)生控制器17的脈沖@_2輸出端連接,讀計數(shù)脈沖輸入端和與門VDI 27的輸出端連接,復(fù)位輸入端和與門VI 25的輸出端連接,讀操作數(shù)個數(shù)輸入端與執(zhí)行命令寄存器6的讀操作數(shù)個數(shù)輸出端連接,讀溢出輸出端還與讀端口脈沖發(fā)生控制器17的讀溢出輸入端、存儲器數(shù)據(jù)空標(biāo)志控制器IV的讀溢出輸入端連接,讀地址輸出端與雙端口只讀只寫存儲器I的讀地址輸入端ΑΒ_2連接;
所述讀端口地址計數(shù)器16實質(zhì)上是一個減I計數(shù)器,讀預(yù)置脈沖將來自執(zhí)行命令寄存器6輸出的讀操作數(shù)個數(shù)預(yù)置給讀端口地址計數(shù)器16,使得讀端口地址計數(shù)器16的讀地址輸出端輸出的地址值ΑΒ_2為讀操作數(shù)個數(shù),讀端口地址計數(shù)器16從讀操作數(shù)個數(shù)開始進(jìn)行-1計數(shù),當(dāng)讀計數(shù)脈沖輸入端來一個計數(shù)脈沖時,讀端口地址計數(shù)器16進(jìn)行一次-1操作,直到讀地址輸出端為“0”,ΑΒ_2為“0”,最后一個操作數(shù)已讀出,溢出信號輸出端由“I”一“0”,溢出信號也是讀端口地址計數(shù)器16停止工作的標(biāo)志;當(dāng)輸入復(fù)位信號為“O”時,復(fù)位讀端口地址計數(shù)器16,讀端口地址計數(shù)器16停止計數(shù)工作,溢出輸出端為“O” ; 所述讀端口脈沖發(fā)生控制器17的同步脈沖輸入端與系統(tǒng)時鐘信號Clock線連接,啟動輸入端和與門V 24的輸出端連接,復(fù)位輸入端和與門VI 25的輸出端連接,類型輸入端與執(zhí)行命令寄存器6的類型輸出端連接;脈沖①_2輸出端與執(zhí)行命令寄存器6的鎖存信號輸入端連接,脈沖?_2輸出端和與門VD26的一個輸入端、配置運(yùn)算與輸出控制模塊V連接,脈沖④_2輸出端和與門VDI 27的一個輸入端、配置運(yùn)算與輸出控制模塊V連接,脈沖?_2輸出端和與門VII 26的另一個輸入端連接,脈沖?_2輸出端和與門VDI 27的另一個輸入端連接,脈沖?_2輸出端和配置運(yùn)算與輸出控制模塊V連接,脈沖@_2輸出端和配置運(yùn)算與輸出控制模塊V連接,讀運(yùn)行狀態(tài)輸出端與存儲器數(shù)據(jù)空標(biāo)志控制器IV的讀運(yùn)行狀態(tài)輸入端連接,啟動使能輸出端和或門V 22的一個輸入端、存儲器數(shù)據(jù)空標(biāo)志控制器IV的啟動使能輸入端連接;
所述讀端口脈沖發(fā)生控制器17輸出的脈沖與系統(tǒng)時鐘Clock同步;當(dāng)雙端口只讀只寫存儲器I的存儲器I或存儲器2為數(shù)據(jù)空時,啟動使能輸出端由“I”一 “O”啟動讀端口脈沖發(fā)生控制器17開始工作;當(dāng)雙端口只讀只寫存儲器I的存儲器I和存儲器2都為數(shù)據(jù)空時,在寫預(yù)置脈沖的作用下啟動輸出端由“I”一“0”,啟動讀端口脈沖發(fā)生控制器17開始工作;啟動的同時置讀端口脈沖發(fā)生控制器17的讀運(yùn)行狀態(tài)輸出端為“O”和啟動使能輸出端為“I”狀態(tài);當(dāng)讀運(yùn)行狀態(tài)為“I”時,表明沒有命令在執(zhí)行,或當(dāng)前命令已執(zhí)行結(jié)束;當(dāng)啟動使能信號為“O”時,表明沒有命令在執(zhí)行,以及執(zhí)行命令的運(yùn)算結(jié)果已鎖存;
所述讀端口脈沖發(fā)生控制器17根據(jù)類型輸入信號為“O”還是為“ I ”,確定控制雙端口只讀只寫存儲器I中讀操作數(shù)的脈沖序列;讀端口地址計數(shù)器16輸出的溢出信號由“I” 一 “0”,讀端口脈沖發(fā)生控制器17經(jīng)過一個運(yùn)算周期時間,讀運(yùn)行狀態(tài)輸出端由“O”―“ 1”,置脈沖⑥_2輸出端為“ 1”,并發(fā)出一個系統(tǒng)時鐘Clock周期存最終運(yùn)算結(jié)果的脈沖@_2,啟動使能輸出端由“I” 一“0”,停止讀端口脈沖發(fā)生控制器17的工作,置所有脈沖輸出端為“I”狀態(tài);當(dāng)輸入的復(fù)位信號為“O”時,復(fù)位讀端口脈沖發(fā)生控制器17,復(fù)位使得讀運(yùn)行狀態(tài)輸出端為“I”狀態(tài),啟動使能輸出端為“0”,置所有脈沖輸出端為“I”狀態(tài),并停止讀端口脈沖發(fā)生控制器17的工作;
所述異或非門18的二個輸入端分別與存儲器數(shù)據(jù)空標(biāo)志控制器IV的存儲器I空輸出端、存儲器2空輸出端連接,輸出端和或門V 22的一個輸入端連接;
所述非門IV 20的輸入端和或門II 10的輸出端寫預(yù)置信號連接,輸出端和或門IV 21的一個輸入端連接;
所述或門IV 21的另一個輸入端和存儲器數(shù)據(jù)空標(biāo)志控制器IV的存儲器I存儲器2都空輸出端連接,輸出端和與門V 24的一個輸入端連接;
所述或門V 22的輸出端和與門V 24的另一個輸入端連接;
所述與門IV 23的一個輸入端與存儲器數(shù)據(jù)空標(biāo)志控制器IV的存儲器I存儲器2都空輸出端連接,另一個輸入端和系統(tǒng)復(fù)位信號Rst線連接;
所述與門VI 25的一個輸入端與系統(tǒng)復(fù)位信號Rst線連接,另一個輸入端和配置運(yùn)算與輸出控制模塊V連接;
所述與門VII 26的輸出端與雙端口只讀只寫存儲器I的讀操作數(shù)輸入端RD_2連接。
[0021]如圖6所示,所述配置運(yùn)算與輸出控制模塊V包括選通器28、結(jié)果寄存器29、操作數(shù)交換器30、浮點數(shù)除運(yùn)算器31、運(yùn)算異常標(biāo)志控制32、32位三態(tài)門組33、或門VI 34、與門IX 35、與門X 36和或門νπ 37 ;
所述選通器28的二個輸入端分別與雙端口只讀只寫存儲器I的讀操作數(shù)輸出端DB_2、浮點數(shù)除運(yùn)算器31的運(yùn)算結(jié)果輸出端連接,選通控制輸入端和與門IX 35的輸出端連接,輸出端與結(jié)果寄存器29的輸入端連接;
當(dāng)脈沖?_2或脈沖?_2為“O”時,所述選通器28輸出從雙端口只讀只寫存儲器I讀出的第I個操作數(shù);當(dāng)脈沖③_2和脈沖④_2都為“ I ”時,選通器28輸出運(yùn)算結(jié)果;
所述結(jié)果寄存器29的輸出端與操作數(shù)交換器30的交換數(shù)I輸入端、32位三態(tài)門組33輸入端連接;結(jié)果鎖存信號輸入端和與門X 36的輸出端連接;
所述操作數(shù)交換器30的交換數(shù)2輸入端與雙端口只讀只寫存儲器I的讀操作數(shù)輸出端DB_2連接,交換控制端和或門VI34的輸出端連接,二個輸出端分別與浮點數(shù)除運(yùn)算器31的操作數(shù)I輸入端、操作數(shù)2輸入端連接;
所述浮點數(shù)除運(yùn)算器31的運(yùn)算結(jié)果輸出端還與運(yùn)算異常標(biāo)志控制32的運(yùn)算結(jié)果輸入端連接;
所述運(yùn)算異常標(biāo)志控制32的鎖存結(jié)果脈沖輸入端與讀端口脈沖發(fā)生控制器17的鎖存結(jié)果脈沖⑦_(dá)2輸出端連接;IRQ輸出端和與門VI 25的一個輸入端連接,IRQ輸出端還向系統(tǒng)輸出中斷請求信號IRQ;當(dāng)中間運(yùn)算結(jié)果或最終運(yùn)算結(jié)果出現(xiàn)異常時,所述運(yùn)算異常標(biāo)志控制32向系統(tǒng)發(fā)出中斷請求信號IRQ,并復(fù)位讀端口地址計數(shù)器16和讀端口脈沖發(fā)生控制器17,停止浮點操作數(shù)讀時序控制模塊III的工作;
所述32位三態(tài)門組33的輸出端與系統(tǒng)數(shù)據(jù)總線DB連接,控制端和或門VII 37的輸出端連接;
所述或門VI 34的一個輸入端與執(zhí)行命令寄存器6的方式輸出端連接,另一個輸入端與讀端口脈沖發(fā)生控制器17的脈沖?_2輸出端連接;
所述與門IX 35的二個輸入端分別與讀端口脈沖發(fā)生控制器17的脈沖?_2、脈沖④_2輸出端連接;
所述與門X 36的二個輸入端分別與讀端口脈沖發(fā)生控制器17的脈沖@_2、脈沖⑦_(dá)2輸出端連接;
所述或門VII 37的二個輸入端分別與模塊地址識別I的CS2信號輸出端、系統(tǒng)讀信號RD線連接;當(dāng)CS2為“O”時,在系統(tǒng)RD信號的作用下,讀出中間運(yùn)算結(jié)果和命令執(zhí)行的最終運(yùn)
晳社里異知米。
[0022]如圖3、圖5、圖6所示,所述浮點操作數(shù)讀時序控制模塊III與執(zhí)行命令寄存器6的類型輸出端連接;所述配置運(yùn)算與輸出控制模塊V與執(zhí)行命令寄存器6的方式輸出端連接;所述執(zhí)行命令寄存器6輸出的方式和類型信號控制從雙端口只讀只寫存儲器I讀出的第I個操作數(shù)參加除法運(yùn)算的操作數(shù)類型和除法方式:
當(dāng)操作數(shù)類型為“O”時:結(jié)果寄存器29輸出的是運(yùn)算結(jié)果,操作數(shù)交換器30的交換數(shù)I輸入端為運(yùn)算結(jié)果,操作數(shù)交換器30的交換數(shù)2輸入端為從雙端口只讀只寫存儲器I讀出的第I個操作數(shù);操作數(shù)交換器30交換控制端輸入的脈沖⑧_2控制兩種除法運(yùn)算的處理方式:
除法方式為“O”:當(dāng)讀第I個操作數(shù)和執(zhí)行第I個操作數(shù)除法運(yùn)算時,脈沖@_2為“0”,則操作數(shù)交換器30的控制端為“0”,交換數(shù)I輸入端的運(yùn)算結(jié)果作為操作數(shù)交換器30輸出的操作數(shù)2,交換數(shù)2輸入端的第I個操作數(shù)作為操作數(shù)交換器30輸出的操作數(shù)I,即操作數(shù)交換器30的2個輸入和2個輸出進(jìn)行交換傳輸,執(zhí)行第I個操作數(shù)/運(yùn)算結(jié)果的除法運(yùn)算;
除法方式為“I”:當(dāng)讀第I個操作數(shù)和執(zhí)行第I個操作數(shù)除法運(yùn)算時,雖然脈沖⑧_2為“0”,但除法方式為“ I ”狀態(tài),使得操作數(shù)交換器30的控制端為“ I ”,操作數(shù)交換器30的2個輸入和2個輸出不進(jìn)行交換傳輸;執(zhí)行運(yùn)算結(jié)果/第I個操作數(shù)的除法運(yùn)算;
當(dāng)操作數(shù)類型為“I”時:第I個操作數(shù)的配置與除法方式信號狀態(tài)無關(guān),讀端口脈沖發(fā)生控制器17的脈沖@_2輸出端為“I”狀態(tài),使得操作數(shù)交換器30的控制端為“1”,操作數(shù)交換器30的2個輸入和2個輸出不進(jìn)行交換傳輸;執(zhí)行第I個操作數(shù)/第2個操作數(shù)的除法運(yùn)算。
【權(quán)利要求】
1.一種雙指令多浮點操作數(shù)除運(yùn)算控制器,其特征在于:該控制器包括雙端口只讀只寫存儲器(I )、命令字及其多操作數(shù)寫時序控制模塊(II)、浮點操作數(shù)讀時序控制模塊皿)、存儲器數(shù)據(jù)空標(biāo)志控制器(IV)、配置運(yùn)算與輸出控制模塊(V); 所述雙端口只讀只寫存儲器(I )與命令字及其多操作數(shù)寫時序控制模塊(II)、浮點操作數(shù)讀時序控制模塊(III)、配置運(yùn)算與輸出控制模塊(V)連接; 所述命令字及其多操作數(shù)寫時序控制模塊(II)還與浮點操作數(shù)讀時序控制模塊(III)、存儲器數(shù)據(jù)空標(biāo)志控制器(IV)、配置運(yùn)算與輸出控制模塊(V)連接; 所述浮點操作數(shù)讀時序控制模塊(III)還與存儲器數(shù)據(jù)空標(biāo)志控制器(IV)、配置運(yùn)算與輸出控制模塊(V)連接; 所述雙端口只讀只寫存儲器(I )為雙端口存儲器,一個只寫端口,一個只讀端口,用于儲存多浮點操作數(shù)(下稱為操作數(shù));所述雙端口只讀只寫存儲器(I )分為存儲器I和存儲器2兩個存儲區(qū)域;所述雙端口只讀只寫存儲器(I )的寫地址高位輸入端AB7_1為“O”,或讀地址高位輸入端AB7_2為“O”,選中操作數(shù)存儲器的127個低地址存儲單元,即存儲器I ;寫地址高位輸入端AB7_1為“ I ”,或讀地址高位輸入端AB7_2為“ I ”,選中操作數(shù)存儲器的127個高地址存儲單元,即存儲器2 ; 所述命令字及其多操作數(shù)寫時序控制模塊(II)控制完成指令的寫入和存儲,需要占用系統(tǒng)總線;一條指令包括9位命令字和若干個操作數(shù),操作數(shù)最多為127個;所述命令字及其多操作數(shù)寫時序控制模塊(II)在雙端口只讀只寫存儲器(I )的存儲器I或存儲器2為數(shù)據(jù)空,輸出寫指令允許信號,方允許被系統(tǒng)選中;被系統(tǒng)選中寫指令時,在系統(tǒng)WR信號的作用下,寫入除運(yùn)算命令字;被系統(tǒng)選中寫操作數(shù)時,其內(nèi)部產(chǎn)生與系統(tǒng)WR信號同步的寫時序脈沖;在寫時序`脈沖的控制下,將操作數(shù)存儲在雙端口只讀只寫存儲器(I )的存儲器I或存儲器2中;一條指令的最后一個操作數(shù)被寫入存儲后,轉(zhuǎn)換雙端口只讀只寫存儲器(I )的寫高位地址輸入端AB7_1狀態(tài),如果雙端口只讀只寫存儲器(I )的存儲器I和存儲器2都非空,停止命令字及其多操作數(shù)寫時序控制模塊(II)的工作; 所述浮點操作數(shù)讀時序控制模塊(III)在內(nèi)部讀時序脈沖的控制下,自主完成多浮點操作數(shù)從雙端口只讀只寫存儲器(I )中讀出,不需要占用系統(tǒng)總線;所述浮點操作數(shù)讀時序控制模塊(III)產(chǎn)生與系統(tǒng)時鐘Clock信號同步的讀時序脈沖序列,按順序?qū)⒉僮鲾?shù)讀出參與除運(yùn)算;當(dāng)參與運(yùn)算的最后一個操作數(shù)讀出之后,產(chǎn)生讀地址溢出信號,然后再經(jīng)過一個除運(yùn)算周期,發(fā)出讀運(yùn)行狀態(tài)結(jié)束的信號,產(chǎn)生一個時鐘周期Clock的結(jié)果鎖存脈沖,然后再發(fā)出啟動使能信號; 所述浮點操作數(shù)讀時序控制模塊(III)依據(jù)存儲器數(shù)據(jù)空標(biāo)志控制器(IV)的空標(biāo)志狀態(tài)讀出操作數(shù),有下面4種工作狀態(tài): 1)所述存儲器數(shù)據(jù)空標(biāo)志控制器(IV)無存儲器I空、存儲器2空的標(biāo)志輸出,表明存儲器1、存儲器2都為數(shù)據(jù)非空,一個非空的存儲器正在寫入指令的命令字及其操作數(shù)或?qū)懭脒^程已結(jié)束;另一個存儲器正在執(zhí)行讀出操作,如果存儲器讀出的操作數(shù)執(zhí)行運(yùn)算結(jié)束,啟動使能信號由“I”一 “0”,轉(zhuǎn)為一個存儲器空,另一個存儲器非空的狀態(tài),此時在讀出操作執(zhí)行結(jié)束后的第I個系統(tǒng)時鐘Clock的下降沿作為時序脈沖發(fā)生的啟動信號,向系統(tǒng)發(fā)送寫指令允許信號;啟動浮點操作數(shù)讀時序控制模塊(III)的工作; 2)所述存儲器數(shù)據(jù)空標(biāo)志控制器(IV)輸出任何一個存儲器空的標(biāo)志,能夠處于兩種操作狀態(tài),一是非空的存儲器正在寫入操作數(shù),該存儲器同時執(zhí)行讀出操作;二是非空的存儲器只在執(zhí)行讀出操作,如果存儲器讀出的操作數(shù)執(zhí)行運(yùn)算結(jié)束,啟動使能信號由“I” 一 “O”,轉(zhuǎn)為存儲器I和存儲器2都空的狀態(tài); 3)所述存儲器數(shù)據(jù)空標(biāo)志控制器(IV)同時輸出存儲器I空、存儲器2空的標(biāo)志,停止浮點操作數(shù)讀時序控制模塊(III)的工作,向系統(tǒng)發(fā)送寫指令允許信號; 4)所述存儲器數(shù)據(jù)空標(biāo)志控制器(IV)同時輸出存儲器I空、存儲器2空的標(biāo)志,且命令字及其多操作數(shù)寫時序控制模塊(II)再次被系統(tǒng)選中寫入指令,命令字及其多操作數(shù)寫時序控制模塊(II)輸出寫預(yù)置脈沖作為浮點操作數(shù)讀時序控制模塊(III)的內(nèi)部時序脈沖發(fā)生器的啟動信號; 所述配置運(yùn)算與輸出控制模塊(V)根據(jù)命令字及其多操作數(shù)寫時序控制模塊(II)輸出的第I個操作數(shù)的除法方式和浮點操作數(shù)讀時序控制模塊(III)傳輸?shù)臅r序脈沖,選通配置第I個操作數(shù)是作為除運(yùn)算器的操作數(shù)I還是操作數(shù)2,選通配置運(yùn)算結(jié)果是作為除運(yùn)算器的操作數(shù)I還是操作數(shù)2,或運(yùn)算結(jié)果不參與執(zhí)行除法命令的第一次運(yùn)算;在浮點操作數(shù)讀時序控制模塊(III)發(fā)出的結(jié)果鎖存信號作用下,鎖存除法運(yùn)算的運(yùn)算結(jié)果,并判斷運(yùn)算結(jié)果是否異常,如果出現(xiàn)異常,向系統(tǒng)發(fā)出IRQ信號,停止浮點操作數(shù)讀時序控制模塊(III)的工作;當(dāng)使能信號CS2為“O”時,在系統(tǒng)RD信號的作用下能夠讀出中間運(yùn)算結(jié)果和命令執(zhí)行的最終運(yùn)算結(jié)果。
2.如權(quán)利要求1所述的雙指令多浮點操作數(shù)除運(yùn)算控制器,其特征在于:所述命令字及其多操作數(shù)寫時序控制模塊(II)包括模塊地址識別(I)、寫高位地址控制器(2)、寫端口地址計數(shù)器(3)、寫端口脈沖發(fā)生控制器(4)、待執(zhí)行命令寄存器(5)、執(zhí)行命令寄存器(6)、非門I (7)、非門II (8)、或門I (9)、或門II (10)、或門111(11)、與門I (12)、與門II (13)和與門 III (14); 所述模塊地址識別(I)輸入端和系統(tǒng)地址總線AB的A31到A27線連接,CSl輸出端和或門II (10)的一個輸入端連接,CS2輸出端和或門III(Il)的一個輸入端、寫端口脈沖發(fā)生控制器(4)的使能輸入端、配置運(yùn)算與輸出控制模塊(V)連接; 所述模塊地址識別(I)內(nèi)部設(shè)置兩個地址值,一個是寫命令字地址值,一個是寫操作數(shù)地址值;所述模塊地址識別(I)輸入A31到A27地址值與模塊地址識別(I)中設(shè)置的地址值進(jìn)行比較,如果和寫命令字地址值相等,則輸出CSl為“0”,如果和寫操作數(shù)地址值相等,則輸出CS2為“O” ;在任何時刻,CSl和CS2只有一個輸出為“0”,或輸出都為“I” ; 所述寫高位地址控制器(2)的鎖存信號輸入端與寫端口地址計數(shù)器(3)的寫溢出輸出端連接,寫高位地址輸入端和非門II (8)的輸出端連接,復(fù)位輸入端和與門II (13)的輸出端連接,輸出端和非門II (8)的輸入端、雙端口只讀只寫存儲器(I )的寫地址高位輸入端AB7_1、存儲器數(shù)據(jù)空標(biāo)志控制器(IV)連接; 所述寫高位地址控制器(2)輸出的是雙端口只讀只寫存儲器(I )的最高位地址值A(chǔ)B7_1 ;當(dāng)雙端口只讀只寫存儲器(I )的存儲器I和存儲器2的數(shù)據(jù)都空時,或者當(dāng)系統(tǒng)復(fù)位信號Rst為“O”時,復(fù)位寫高位地址控制器(2),其輸出為“O”;當(dāng)寫高位地址控制器(2)的鎖存信號輸入端由“I”一 “O”時,寫高位地址控制器(2)輸出端輸出的AB7_1狀態(tài)翻轉(zhuǎn); 所述寫端口地址計數(shù)器(3)的操作數(shù)個數(shù)輸入端與系統(tǒng)數(shù)據(jù)總線DB的D6到DO線連接,寫預(yù)置脈沖輸入端和或門II (10)的輸出端連接,寫計數(shù)脈沖輸入端與寫端口脈沖發(fā)生控制器(4)的脈沖②」輸出端連接,寫復(fù)位輸入端和系統(tǒng)復(fù)位信號Rst線連接,寫地址輸出端和雙端口只讀只寫存儲器(I )的寫地址輸入端AB_1連接,寫溢出輸出端還和寫端口脈沖發(fā)生控制器(4)的寫溢出輸入端、非門I (7)的輸入端、存儲器數(shù)據(jù)空標(biāo)志控制器(IV)連接; 所述寫端口地址計數(shù)器(3)實質(zhì)上是一個減I計數(shù)器,系統(tǒng)DB的D6到DO傳輸?shù)氖菂⑴c除運(yùn)算的操作數(shù)個數(shù)值,當(dāng)雙端口只讀只寫存儲器(I )的存儲器I空或存儲器2空,且滿足模塊地址識別(I)的CS2輸出端為“O”時,WR信號作為寫預(yù)置脈沖將操作數(shù)個數(shù)值作為雙端口只讀只寫存儲器(I )寫端口的低7位地址初值預(yù)置給寫端口地址計數(shù)器(3),并將寫溢出輸出端設(shè)置為“I”狀態(tài); 所述寫端口地址計數(shù)器(3)輸出雙端口只讀只寫存儲器(I )的寫端口低7位地址值A(chǔ)B_1 ;當(dāng)寫計數(shù)脈沖輸入端來一個計數(shù)脈沖時,寫端口地址計數(shù)器(3)進(jìn)行一次-1操作,直到寫地址輸出端為“0”,AB_1為“0”,此時寫溢出信號輸出端由“ I” 一 “0”,寫溢出信號作為寫端口地址計數(shù)器(3)停止工作的標(biāo)志,使得寫高位地址控制器(2)的鎖存信號輸入端由“I” 一“O”時,寫高位地址控制器(2)輸出的AB7_1狀態(tài)翻轉(zhuǎn);寫端口地址計數(shù)器(3)在系統(tǒng)復(fù)位信號Rst的作用下,復(fù)位寫端口地址計數(shù)器(3),使得寫溢出信號輸出端為“O”狀態(tài); 所述寫端口脈沖發(fā)生控制器(4)的同步脈沖輸入端與系統(tǒng)寫信號WR線連接,啟動輸入端和與門III (14)的輸出端連接,復(fù)位輸入端和系統(tǒng)復(fù)位信號Rst線連接,脈沖①」輸出端和雙端口只讀只寫存儲 器(I )的寫信號輸入端WR_1連接; 所述寫端口脈沖發(fā)生控制器(4)的使能輸入端為“0”,在啟動輸入端的脈沖信號作用下啟動工作,發(fā)出與系統(tǒng)WR脈沖同步的脈沖①_1和脈沖@_1,脈沖①_1作為雙端口只讀只寫存儲器(I )的寫入信號WR_1,脈沖②_1作為寫端口地址計數(shù)器(3)的寫計數(shù)脈沖;所述寫端口地址計數(shù)器(3)的寫溢出信號輸出端由“I”一 “0”,寫端口脈沖發(fā)生控制器(4)停止工作,脈沖①」和脈沖②」的輸出端為“I”狀態(tài); 所述待執(zhí)行命令寄存器(5)的命令輸入端和系統(tǒng)數(shù)據(jù)總線DB的D8到DO線連接,鎖存信號輸入端和或門II (10)的輸出端連接,輸出端與執(zhí)行命令寄存器(6)的命令輸入端連接; 所述執(zhí)行命令寄存器(6)的鎖存信號輸入端與浮點操作數(shù)讀時序控制模塊(III)連接,讀操作數(shù)個數(shù)輸出端、類型輸出端與浮點操作數(shù)讀時序控制模塊(III)連接,方式輸出端與配置運(yùn)算與輸出控制模塊(V)連接; 所述非門I (7)的輸出端和或門I (9)的一個輸入端連接; 所述或門I (9)的另一個輸入端和與門I (12)的輸出端連接,輸出端向系統(tǒng)輸出寫指令允許信號; 所述或門II (10)的另二個輸入端分別和與門I (12)的輸出端、系統(tǒng)WR寫信號線連接,輸出端作為寫預(yù)置信號還與浮點操作數(shù)讀時序控制模塊(III)連接; 所述或門III(Il)的另一個輸入端與系統(tǒng)WR寫信號線連接,輸出端和與門111(14)的一個輸入端連接; 所述與門I (12)的二個輸入端分別與存儲器數(shù)據(jù)空標(biāo)志控制器(IV)的存儲器I空輸出端、存儲器2空輸出端連接,輸出端還和與門III(14)的另一個輸入端連接;所述與門11(13)的一個輸入端與存儲器數(shù)據(jù)空標(biāo)志控制器(IV)的存儲器I存儲器2數(shù)據(jù)都空輸出端連接,另一個輸入端與系統(tǒng)Rst復(fù)位信號線連接。
3.如權(quán)利要求1所述的雙指令多浮點操作數(shù)除運(yùn)算控制器,其特征在于:所述存儲器讀時序控制模塊III包括讀高位地址控制器(15)、讀端口地址計數(shù)器(16)、讀端口脈沖發(fā)生控制器(17)、異或非門(18)、非門IIK19)、非門IV (20)、或門IV (21)、或門V (22)、與門IV(23)、與門乂(24)、與門/1(25)、與門¥11(26)和與門VDK27); 所述讀高位地址控制器(15)的鎖存信號輸入端與讀端口地址計數(shù)器(16)的讀溢出輸出端連接,讀高位地址輸入端和非門111(19)的輸出端連接,復(fù)位輸入端和與門IV(23)的輸出端連接,輸出端與雙端口只讀只寫存儲器(I )的讀地址高位輸入端AB7_2、非門111(19)的輸入端、存儲器數(shù)據(jù)空標(biāo)志控制器(IV)連接; 所述讀高位地址控制器(15)輸出的是雙端口只讀只寫存儲器(I )讀端口的最高位地址值A(chǔ)B7_2,當(dāng)雙端口只讀只寫存儲器(I )的存儲器I和存儲器2的數(shù)據(jù)都空時,或者當(dāng)系統(tǒng)復(fù)位信號Rst為“ O ”時,復(fù)位讀高位地址控制器(15 ),其輸出端為“ O ” ;當(dāng)讀高位地址控制器(15)的鎖存信號輸入端由“I” 一 “O”時,寫高位地址控制器(2)輸出的AB7_2信號翻轉(zhuǎn); 所述讀端口地址計數(shù)器(16)的讀預(yù)置脈沖輸入端與讀端口脈沖發(fā)生控制器(17)的脈沖②_2輸出端連接,讀計數(shù)脈沖輸入端和與門VDI (27)的輸出端連接,復(fù)位輸入端和與門VI(25)的輸出端連接 ,讀操作數(shù)個數(shù)輸入端與執(zhí)行命令寄存器(6)的讀操作數(shù)個數(shù)輸出端連接,讀溢出輸出端還與讀端口脈沖發(fā)生控制器(17)的讀溢出輸入端、存儲器數(shù)據(jù)空標(biāo)志控制器(IV)的讀溢出輸入端連接,讀地址輸出端與雙端口只讀只寫存儲器(I )的讀地址輸入端AB_2連接; 所述讀端口地址計數(shù)器(16)實質(zhì)上是一個減I計數(shù)器,讀預(yù)置脈沖將來自執(zhí)行命令寄存器(6)輸出的讀操作數(shù)個數(shù)預(yù)置給讀端口地址計數(shù)器(16),使得讀端口地址計數(shù)器(16)的讀地址輸出端輸出的地址值A(chǔ)B_2為讀操作數(shù)個數(shù),讀端口地址計數(shù)器(16)從讀操作數(shù)個數(shù)開始進(jìn)行-1計數(shù),當(dāng)讀計數(shù)脈沖輸入端來一個計數(shù)脈沖時,讀端口地址計數(shù)器(16)進(jìn)行一次-1操作,直到讀地址輸出端為“0”,AB_2為“0”,表明最后一個操作數(shù)已讀出,溢出信號輸出端由“I”一“0”,溢出信號也是讀端口地址計數(shù)器(16)停止工作的標(biāo)志;當(dāng)輸入復(fù)位信號為“O”時,復(fù)位讀端口地址計數(shù)器(16),讀端口地址計數(shù)器(16)停止計數(shù)工作,溢出輸出端為“O”; 所述讀端口脈沖發(fā)生控制器(17)的同步脈沖輸入端與系統(tǒng)時鐘信號Clock線連接,啟動輸入端和與門V (24)的輸出端連接,復(fù)位輸入端和與門VK25)的輸出端連接,類型輸入端與執(zhí)行命令寄存器(6)的類型輸出端連接;脈沖①_2輸出端與執(zhí)行命令寄存器(6)的鎖存信號輸入端連接,脈沖?_2輸出端和與門VD(26)的一個輸入端、配置運(yùn)算與輸出控制模塊(V)連接,脈沖@_2輸出端和與門VDK27)的一個輸入端、配置運(yùn)算與輸出控制模塊(V )連接,脈沖⑤_2輸出端和與門VII (26 )的另一個輸入端連接,脈沖⑥_2輸出端和與門VDK27)的另一個輸入端連接,脈沖?_2輸出端和配置運(yùn)算與輸出控制模塊(V)連接,脈沖@_2輸出端和配置運(yùn)算與輸出控制模塊(V)連接,讀運(yùn)行狀態(tài)輸出端與存儲器數(shù)據(jù)空標(biāo)志控制器(IV)的讀運(yùn)行狀態(tài)輸入端連接,啟動使能輸出端和或門V (22)的一個輸入端、存儲器數(shù)據(jù)空標(biāo)志控制器(IV)的啟動使能輸入端連接;所述讀端口脈沖發(fā)生控制器(17)輸出的脈沖與系統(tǒng)時鐘Clock同步;當(dāng)雙端口只讀只寫存儲器(I )的存儲器I或存儲器2為數(shù)據(jù)空時,啟動使能輸出端由“I”一“0”,啟動讀端口脈沖發(fā)生控制器(17)開始工作;當(dāng)雙端口只讀只寫存儲器(I )的存儲器I和存儲器2都為數(shù)據(jù)空時,在寫預(yù)置脈沖的作用下啟動輸出端由“I”一 “0”,啟動讀端口脈沖發(fā)生控制器(17)開始工作;啟動的同時置讀端口脈沖發(fā)生控制器(17)的讀運(yùn)行狀態(tài)輸出端為“O”和啟動使能輸出端為“ I”狀態(tài);當(dāng)讀運(yùn)行狀態(tài)為“ I”時,表明沒有命令在執(zhí)行,或當(dāng)前命令已執(zhí)行結(jié)束;當(dāng)啟動使能信號為“O”時,表明沒有命令在執(zhí)行,以及執(zhí)行命令的運(yùn)算結(jié)果已鎖存; 所述讀端口脈沖發(fā)生控制器(17)根據(jù)類型輸入信號為“O”還是為“ I ”,確定控制雙端口只讀只寫存儲器(I )中讀操作數(shù)的脈沖序列;讀端口地址計數(shù)器(16)輸出的溢出信號由“I”一 “0”,讀端口脈沖發(fā)生控制器(17)經(jīng)過一個運(yùn)算周期時間,讀運(yùn)行狀態(tài)輸出端由“O”―“ 1”,置脈沖⑥_2輸出端為“ 1”,并發(fā)出一個系統(tǒng)時鐘Clock周期存最終運(yùn)算結(jié)果的脈沖@_2,啟動使能輸出端由“I” 一“0”,停止讀端口脈沖發(fā)生控制器(17)的工作,置所有脈沖輸出端為“ I”狀態(tài);當(dāng)輸入的復(fù)位信號為“O”時,復(fù)位讀端口脈沖發(fā)生控制器(17),復(fù)位使得讀運(yùn)行狀態(tài)輸出端為“I”狀態(tài),啟動使能輸出端為“0”,置所有脈沖輸出端為“I”狀態(tài),并停止讀端口脈沖發(fā)生控制器(17)的工作; 所述異或非門(18)的二個輸入端分別與存儲器數(shù)據(jù)空標(biāo)志控制器(IV)的存儲器I空輸出端、存儲器2空輸出端連接,輸出端和或門V (22)的一個輸入端連接; 所述非門IV(20)的輸入端和或門II(IO)的輸出端寫預(yù)置信號連接,輸出端和或門IV(21)的一個輸入端連接; 所述或門IV(21)的另一個輸入端和存儲器數(shù)據(jù)空標(biāo)志控制器(IV)的存儲器I存儲器2都空輸出端連接,輸出端和與門V (24)的一個輸入端連接; 所述或門V (22)的輸出端和與門V (24)的另一個輸入端連接; 所述與門IV(23)的一個輸入端與存儲器數(shù)據(jù)空標(biāo)志控制器(IV)的存儲器I存儲器2都空輸出端連接,另一個輸入端和系統(tǒng)復(fù)位信號Rst線連接; 所述與門VK25)的一個輸入端與系統(tǒng)復(fù)位信號Rst線連接,另一個輸入端和配置運(yùn)算與輸出控制模塊(V)連接; 所述與門VD(26)的輸出端與雙端口只讀只寫存儲器(I )的讀操作數(shù)輸入端RD_2連接。
4.如權(quán)利要求1所述的雙指令多浮點操作數(shù)除運(yùn)算控制器,其特征在于:所述配置運(yùn)算與輸出控制模塊(V)包括選通器(28)、結(jié)果寄存器(29)、操作數(shù)交換器(30)、浮點數(shù)除運(yùn)算器(31)、運(yùn)算異常標(biāo)志控制(32)、32位三態(tài)門組(33)、或門/1(34)、與門:0((35)、與門父(36)和或門訓(xùn)(37); 所述選通器(28)的二個輸入端分別與雙端口只讀只寫存儲器(I )的讀操作數(shù)輸出端DB_2、浮點數(shù)除運(yùn)算器(31)的運(yùn)算結(jié)果輸出端連接,選通控制輸入端和與門IX(35)的輸出端連接,輸出端與結(jié)果寄存器(29)的輸入端連接;當(dāng)脈沖?_2或脈沖@_2為“O”時,所述選通器(28)輸出從雙端口只讀只寫存儲器(I )讀出的第I個操作數(shù);當(dāng)脈沖③_2和脈沖④_2都為“I”時,選通器(28)輸出運(yùn)算結(jié)果;所述結(jié)果寄存器(29)的輸出端與操作數(shù)交換器(30)的交換數(shù)I輸入端、32位三態(tài)門組(33)輸入端連接;結(jié)果鎖存信號輸入端和與門X (36)的輸出端連接; 所述操作數(shù)交換器(30)的交換數(shù)2輸入端與雙端口只讀只寫存儲器(I )的讀操作數(shù)輸出端DB_2連接,交換控制端和或門VI (34 )的輸出端連接,二個輸出端分別與浮點數(shù)除運(yùn)算器(31)的操作數(shù)I輸入端、操作數(shù)2輸入端連接; 所述浮點數(shù)除運(yùn)算器(31)的運(yùn)算結(jié)果輸出端還與運(yùn)算異常標(biāo)志控制(32)的運(yùn)算結(jié)果輸入端連接; 所述運(yùn)算異常標(biāo)志控制(32)的鎖存結(jié)果脈沖輸入端與讀端口脈沖發(fā)生控制器(17)的鎖存結(jié)果脈沖?_2輸出端連接;IRQ輸出端和與門VK25)的一個輸入端連接,IRQ輸出端還向系統(tǒng)輸出中斷請求信號IRQ;當(dāng)中間運(yùn)算結(jié)果或最終運(yùn)算結(jié)果出現(xiàn)異常時,所述運(yùn)算異常標(biāo)志控制(32)向系統(tǒng)發(fā)出中斷請求信號IRQ,并復(fù)位讀端口地址計數(shù)器(16)和讀端口脈沖發(fā)生控制器(17),停止浮點操作數(shù)讀時序控制模塊(III)的工作; 所述32位三態(tài)門組(33)的輸出端與系統(tǒng)數(shù)據(jù)總線DB連接,控制端和或門VII (37)的輸出端連接; 所述或門VI(34)的一個輸入端與執(zhí)行命令寄存器(6)的方式輸出端連接,另一個輸入端與讀端口脈沖發(fā)生控制器(17)的脈沖?_2輸出端連接; 所述與門ΙΧ(35)的二個輸入端分別與讀端口脈沖發(fā)生控制器(17)的脈沖?_2、脈沖@_2輸出端連接; 所述與門X (36)的二個輸入端分別與讀端口脈沖發(fā)生控制器(17)的脈沖@_2、脈沖?_2輸出端連接; 所述或門VII (37)的二個輸入端分別與模塊地址識別(I)的CS2信號輸出端、系統(tǒng)讀信號RD線連接;當(dāng)CS2為“O”時,在系統(tǒng)RD信號的作用下,讀出中間運(yùn)算結(jié)果和命令執(zhí)行的最終運(yùn)算結(jié)果。
5.如權(quán)利要求1所述的雙指令多浮點操作數(shù)除運(yùn)算控制器,其特征在于:所述浮點操作數(shù)讀時序控制模塊(III)與執(zhí)行命令寄存器(6)的類型輸出端連接;所述配置運(yùn)算與輸出控制模塊(V)與執(zhí)行命令寄存器(6)的方式輸出端連接;所述執(zhí)行命令寄存器(6)輸出的方式和類型信號控制從雙端口只讀只寫存儲器(1)讀出的第I個操作數(shù)參加除法運(yùn)算的操作數(shù)類型和除法方式: 當(dāng)操作數(shù)類型為“O”時:結(jié)果寄存器(29)輸出的是運(yùn)算結(jié)果,操作數(shù)交換器(30)的交換數(shù)1輸入端為運(yùn)算結(jié)果,操作數(shù)交換器(30)的交換數(shù)2輸入端為從雙端口只讀只寫存儲器(1)讀出的第1個操作數(shù);操作數(shù)交換器(30)交換控制端輸入的脈沖⑧_2控制兩種除法運(yùn)算的處理方式: 除法方式為“O”:當(dāng)讀第I個操作數(shù)和執(zhí)行第1個操作數(shù)除法運(yùn)算時,脈沖@_2為“0”,則操作數(shù)交換器(30)的控制端為“0”,交換數(shù)I輸入端的運(yùn)算結(jié)果作為操作數(shù)交換器(30)輸出的操作數(shù)2,交換數(shù)2輸入端的第1個操作數(shù)作為操作數(shù)交換器(30)輸出的操作數(shù)I,即操作數(shù)交換器(30)的2個輸入和2個輸出進(jìn)行交換傳輸,執(zhí)行第I個操作數(shù)/運(yùn)算結(jié)果的除法運(yùn)算; 除法方式為“1”:當(dāng)讀第I個操作數(shù)和執(zhí)行第I個操作數(shù)除法運(yùn)算時,雖然脈沖⑧_2為“0”,但除法方式為“1”狀態(tài),使得操作數(shù)交換器(30)的控制端為“1”,操作數(shù)交換器(30)的2個輸入和2個輸出不進(jìn)行交換傳輸;執(zhí)行運(yùn)算結(jié)果/第I個操作數(shù)的除法運(yùn)算;當(dāng)操作數(shù)類型為“I”時:第I個操作數(shù)的配置與除法方式信號狀態(tài)無關(guān),讀端口脈沖發(fā)生控制器(17)的脈沖@_2輸出端為“I”狀態(tài),使得操作數(shù)交換器(30)的控制端為“1”,操作數(shù)交換器(30)的2個輸入和2個輸出不進(jìn)行交換傳輸;執(zhí)行第I個操作數(shù)/第2個操作數(shù)的除法運(yùn)算 。
【文檔編號】G06F7/537GK103631559SQ201310681279
【公開日】2014年3月12日 申請日期:2013年12月13日 優(yōu)先權(quán)日:2013年12月13日
【發(fā)明者】蔡啟仲, 李克儉, 李剛, 薛圣利, 王鳴桃 申請人:廣西科技大學(xué)