專利名稱::一種支持forth語言的計算機體系結構的制作方法
技術領域:
:本發(fā)明涉及一種計算機體系結構,更具體地說,本發(fā)明涉及一種能直接支持第四代高級計算機語言-FORTH語言的計算機體系結構。目前的計算機系統(tǒng)中都配備了豐富的軟件,其中傳統(tǒng)的高級語言(例如FORTRAN、COBOL、PASCAL、BASIC等)都得到了廣泛的應用。但是,這類高級語言的功能都是有限的,而且對這類語言本身的二次開發(fā)工作一般都需要由生產(chǎn)廠家完成,靠語言本身是不能完成的。此外,這類語言雖然書寫程序比較方便、規(guī)范,但是由于它們與機器之間的界面過多,所以編譯速度和效率都較低。由于對機器的不透明性,使得程序的質(zhì)量和運行效率的提高也受到很大的限制。例如,在使用FORTRAN語言時,首先要在操作系統(tǒng)界面上使用文本編輯軟件,編輯一個FORTRAN源程序文件,接著要在FORTRAN編譯系統(tǒng)界面上,對源程序文件進行二遍掃描編譯,從而產(chǎn)生相應的目標程序文件;編譯通過之后,再回到操作系統(tǒng)界面上使用系統(tǒng)的鏈接軟件,對目標文件進行鏈接定位,使之產(chǎn)生相應的可執(zhí)行文件,這樣一個可執(zhí)行文件才可在操作系統(tǒng)界面上直接運行。當FORTRAN程序中需要調(diào)用匯編語言程序時,則需要通過與產(chǎn)生FORTRAN目標程序文件相類似的方法,使用系統(tǒng)的文本編輯軟件和匯編語言來生成匯編目標程序文件,然后與FORTRAN目標程序文件一起鏈接定位。由此可見,這樣的編譯過程十分繁索,界面的轉換也很多,大大影響了編譯速度和效率,初學者也不易掌握。近年來,人們愈來愈積極地尋求界面簡單、結構化好及編譯效率高,并能自擴展(自我二次開發(fā))的高級軟件工具,因而出現(xiàn)了具有明顯優(yōu)勢的第四代高級程序設計語言FORTH語言。FORTH語言系統(tǒng)與其它高級語言不同,F(xiàn)ORTH系統(tǒng)一旦生成后,就不必進行任何界面的轉換,只在FORTH系統(tǒng)這一層界面上就可以進行從編輯、編譯到運行器各個狀態(tài)下的工作。這是因為FORTH系統(tǒng)容納了操作系統(tǒng)的常駐模塊的主要功能,并且有自己的文本編輯器。另外,F(xiàn)ORTH系統(tǒng)中還包含了完全結構化的一次掃描的FORTH匯編,它可以在FORTH系統(tǒng)中直接編譯和運行匯編程序。此外,F(xiàn)ORTH語言還具有許多優(yōu)于其它高級語言的優(yōu)點,例如它是完全結構化的,并具有自我擴展能力,它是透明的語言,也是目標代碼最短的語言等等,因為具有上述優(yōu)點,F(xiàn)ORTH語言已經(jīng)在世界各國,尤其是在美國,得到了愈來愈廣泛的應用。然而,目前的計算機都是傳統(tǒng)的馮·依曼型計算機。這種類型的計算機都有一套機器的指令系統(tǒng),機器的CPU只能分析、執(zhí)行這套機器指令集,人們必須在這個指令系統(tǒng)的基礎上去開發(fā)軟件。因此便需要開發(fā)出一種能直接運行FORTH高級語言的新一代計算機。目前,傳統(tǒng)的計算機體系結構主要是采用復雜的指令系統(tǒng)計算機結構,即CISC(ComplexInstructionSetComputer)結構。為了能得到更快的執(zhí)行命令的速度,同時使結構簡單,電路簡化,成本更低廉,又出現(xiàn)了一種新的計算機體系結構-RISC(ReducedInstructionSetComputer)結構。RISC結構計算機的特點是在每個時鐘周期內(nèi)執(zhí)行一條指令;其指令使用固定格式。RISC結構計算機強調(diào)使用載出/存入設計,以存貯器執(zhí)行指令方式完成從存貯器載出和存入存貯器。另外,RISC結構計算機使用硬件布線來實現(xiàn)指令控制,不用微代碼設計,以保證快速度、單周期操作碼的運行。1987年底,美國的Koopman提出了一種交互式計算機結構,它能把RISC結構和CISC結構綜合在一起,產(chǎn)生出一種更有興趣、布局合理、靈活、速度快的機器,該結構被命名為WISC(WritableInstructionSetComputer)結構。有關FORTH高級語言和CISC、RISC及WISC體系結構的參考文件請見劉大力、黎曉準、張漢煜編著的,人民郵電出版社于1988年2月出版的《第四代計算機高級語言-FORTH》一書,以及《CommunicationoftheACM》雜志1985年第1期刊登的文章“ReducedInstructionSetComputer”,《Byte》雜志1987年April的文章“TheWWISCConcept”PhilKoopman。本發(fā)明的目的是提供一種新型的計算機體系結構,該計算機體系結構是支持計算機高級語言FORTH的硬件環(huán)境。該計算機所完成的基本操作能很有效地描述FORTH語言基本單詞的語義,F(xiàn)ORTH語言的基本單詞相當于該計算機的“匯編指令”。本發(fā)明的計算機體系結構是直接面向第四代語言、綜合采用CISC、RISC、WISC技術和宏技術設計的計算機體系結構,其主頻、運算速度、尋址能力等各項技術指標都達到了八十年代后期世界先進水平。本發(fā)明的計算機體系結構中包括一個存放操作的準備數(shù)據(jù)、操作的中間結果及完成操作的最終結果的第一存貯裝置;一個存放子程序調(diào)用的斷點地址及調(diào)用返回時恢復斷點的地址的第二存貯裝置;一個存放計算機的系統(tǒng)軟件,指令和用戶程序的主存貯裝置;一個根據(jù)指令譯碼所產(chǎn)生的微操作控制信號完成對第一存貯裝置的寫入操作和讀出操作的第一存貯裝置管理裝置;一個根據(jù)指令譯碼所產(chǎn)生的微操作控制信號完成對第二存貯裝置的寫入操作和讀出操作的第二存貯裝置管理裝置;一個管理訪問主存貯裝置的地址的主存貯裝置管理裝置;一個接收主存貯裝置讀出的指令或數(shù)據(jù)并為對主存貯裝置的寫入操作準備數(shù)據(jù)的主存貯裝置數(shù)據(jù)端口;一個對主存貯裝置中取出的指令進行譯碼并產(chǎn)生多個微操作信號的組合邏輯譯碼控制裝置;一個由多路轉換器和進行算術邏輯運算的算術邏輯運算裝置組成的運算裝置;以及一個至少包含第一寄存器和第二寄存器的移位寄存器裝置。圖1是本發(fā)明的計算機體系結構的總體框圖;圖2是說明本發(fā)明的焦點,發(fā)散數(shù)據(jù)通路的示意圖;圖3是具體說明本發(fā)明的參數(shù)棧管理部件的示意圖;圖4是具體說明本發(fā)明的返回棧管理部件的示意圖;圖5是具體說明本發(fā)明的移位寄存器部件的示意圖;圖6是具體說明本發(fā)明的指令重復執(zhí)行控制部件的示意圖;圖7是具體說明本發(fā)明的運算器部件的示意圖;圖8是具體說明本發(fā)明的主存貯器地址管理部件的示意圖;圖9是具體說明本發(fā)明的主存貯器數(shù)據(jù)端口部件的示意圖;圖10是具體說明本發(fā)明的串行、并行I/O端口部件的示意圖;圖11是具體說明本發(fā)明的并行I/O端口部件的示意圖;圖12是具體說明本發(fā)明的開平方運算硬件線路的示意圖;圖13是說明本發(fā)明的計算機完成一條指令過程的示意圖;圖14是說明本發(fā)明所采用的雙鎖存器原理的示意圖;圖15是說明本發(fā)明的計算機中的TOP寄存器和NXT鎖存器原理的示意圖;圖16是說明本發(fā)明的計算機中的時鐘信號波形的示意圖;圖17是說明本發(fā)明的計算機中的雙鎖存器結構的示意圖。下面將參考本發(fā)明的一個實施例,同時闡明本發(fā)明的設計思想。值得注意的是,此處所敘述的各具體內(nèi)容只不過是借以解釋本發(fā)明構思的手段,并不限制本發(fā)明的范圍。本
技術領域:
的人員可能據(jù)此做出不脫離本發(fā)明范圍的各種變更和修改。因此,確定本發(fā)明專利申請保護范圍應當根據(jù)所附的權利要求。參見圖1,為了使本發(fā)明的計算機體系結構支持FORTH語言,把FORTH語言中的雙棧-參數(shù)棧、返回棧設置成兩個獨立的存貯區(qū),即圖1中的參數(shù)棧存貯區(qū)1和返回棧存貯區(qū)2。參數(shù)棧存貯區(qū)的容量可以是1K×16bit;返回棧存貯區(qū)的容量可以是1K×20bit。相應的,CPU3中設有該兩個棧的管理部件參數(shù)棧管理部件FSD和返回棧管理部件FRD。參數(shù)棧的作用是存放一個操作的準備數(shù)據(jù),中間結果及完成操作的最終結果。對參數(shù)棧寫入一個數(shù),意味著完成了一次入棧操作。相反,從參數(shù)棧讀出一個數(shù),則相當于完成了一次出棧操作。返回棧在FORTH語言中的作用是保存單詞(子程序)調(diào)用的斷點地址,在調(diào)用返回時恢復斷點地址,同時在一定條件下可以為某一操作存放中間結果。為保存20位的地址,返回棧是20位的,而參數(shù)棧是16位的。棧管理部件FSD和FRD的主要功能是根據(jù)指令譯碼所產(chǎn)生的微操作控制信號完成對棧存貯區(qū)的寫入操作(入棧)和讀出操作(出棧)。在本發(fā)明的體系結構中,主存貯區(qū)4的容量可以為220=1M字,用于存放系統(tǒng)軟件和用戶程序。計算機不斷地從該存貯區(qū)中取出指令并執(zhí)行該指令。在程序中的一條指令得到執(zhí)行前,CPU3必須給出該指令或一個數(shù)據(jù)在主存貯區(qū)的地址,才能完成對主存貯區(qū)的訪問。主存貯區(qū)地址管理部件FPCA的主要作用是形成訪問主存貯區(qū)的地址。主存數(shù)據(jù)端口部件FD的作用是接收從主存貯區(qū)讀出的指令或數(shù)據(jù),為完成主存貯區(qū)的寫入操作準備好數(shù)據(jù),如果從主存貯區(qū)中取出的是指令,則該指令送到組合邏輯譯碼控制部件FCC,由其產(chǎn)生各種微操作信號(各種開關信號),從而完成一條指令所規(guī)定的操作。運算器部件FALU由三部分組成,即一個多路轉換器(此處為24選一多路轉換器)MUX-Y,其作用是選擇CPU內(nèi)部各個用戶可用的寄存器作為操作數(shù);另一個是算術邏輯運算單元ALU,它可以進行9種算術邏輯運算,5個FORTH單詞的操作;再一個是開平方硬件線路SQR,該線路通過將開平方算法硬件化,可以在8個時鐘周期內(nèi)完成一個16位無符號二進制數(shù)的開平方運算。CPU3中還包括一個指令重復執(zhí)行控制部件FREPT,該部件中有一個寄存器REPT,在該寄存器有效時可以控制CPU重復執(zhí)行并指令。CPU3中還包括一個移位寄存器部件FTN,它主要是由兩個寄存器組成,即TOP寄存器和NXT寄存器。ALU部件的操作結果必然送到FTN部件中。FTN部件中還包括兩個桶形移位器(BarralShifter),從而完成對ALU運算結果的移位操作。另外,F(xiàn)TN部件可以把結果送到各個寄存器之中。TOP寄存器和NXT寄存器的主要作用是作為FORTH語言語義的參數(shù)棧棧頂和次棧頂。該CPU3結構中還安排了兩個I/O端口,即16位并行I/O端口FP和8位串行、并行I/O端口FDS/P。FDS/P端口除了能完成并行I/O操作外,通過對該端口控制寄存器的設置,可以使其完成串行I/O操作。寄存器是CPU中用得最多的基本部件,本發(fā)明結構中各寄存器之間的關系如圖2所示,它反映了本發(fā)明的數(shù)據(jù)通道。本發(fā)明的結構中的數(shù)據(jù)通路、焦點與發(fā)散是圍繞ALU的操作設計的??梢赃x擇多個寄存器中的任何一個參與ALU運算,運算結果直接送入TOP寄存器,而后由TOP寄存器發(fā)送到各個寄存器中。圖2中的多路轉換器MUX-Y是由指令格式的5位來控制選擇寄存器的。下面說明圖2中各寄存器與圖1各部件的關系。返回棧管理部件FRD中含有RD、RPL寄存器;參數(shù)棧管理部件FSD中含有SD、SPL寄存器;移位寄存器部件FTN中含有TOP、NXT、TH、NH寄存器;指令重復執(zhí)行控制部件FREPT中含有REPT、RT寄存器;運算器部件FALU中包含了SR、MD寄存器;主存地址管理部件FPCA中包含了PC寄存器;主存數(shù)據(jù)端口FD中包含了D、IL寄存器;8位串行、并行I/O端口FDS/P包含了DS/P、XBS、XSP、XIO寄存器;16位并行I/O端口FP中包含了P、BBS、BIO寄存器。這21個寄存器的作用將在后面說明。圖2基本上反映了本發(fā)明的CPU的數(shù)據(jù)通道,但不是全部。它只反映了圍繞ALU的數(shù)據(jù)通路。寄存器之間的數(shù)據(jù)通路沒在圖2中表示。但可以從TOP寄存器送各個寄存器的通路上有所反映。在一些寄存器的輸入端具有多路選擇開關,它們就是為寄存器間的數(shù)據(jù)傳送而設置的,這些多路選擇開關是受指令譯碼控制部件FCC的微操作信號控制的。上面介紹了本發(fā)明結構的各部件功能及數(shù)據(jù)通路。參照圖1、圖2和圖13,CPU完成一條指令的過程如下在上一條指令周期里,已從主存貯區(qū)取出的一條指令存放在主存數(shù)據(jù)端口FD的指令寄存器IL中,并在指令譯碼控制部件FCC中進行了預處理;進入該指令周期后,F(xiàn)CC部件釋放出經(jīng)過預處理之后的微操作控制信號;微操作控制信號控制各部件做相應動作,完成指令所規(guī)定的操作。在完成該指令的同時,完成從主存貯區(qū)取出下一條指令的操作,并進行預處理,等待下一個指令周期的到來。例如FORTH語言的4個單詞RSWAP-2/,本發(fā)明的計算機體系結構可以在單單周期內(nèi)完成這4個FORTH語言單詞所規(guī)定的操作。參照圖1和圖2,其過程如下把返回棧棧頂寄存器RT的內(nèi)容由多路轉換器MMUX-Y送至ALU;ALU完成Y-TOP(即RT-TOP)的操作;ALU的運算結果送移位寄存器部件FTN的TOP寄存器,通過TOP寄存器中包含的桶形移位器完成2/操作。在FORTH語言中,任何操作都與參數(shù)棧和返回棧有關,具體地說,任何算術、邏輯運算,存取操作(即!,),子程序調(diào)用(單詞調(diào)用)的參數(shù)準備,結果的傳遞等均在參數(shù)棧上進行;子程序(單詞)調(diào)用時斷點地址的保護及恢復均在返回棧上進行,一些操作的中間結果的保存可在返回棧上進行。然而一般的堆棧固有的缺點是棧的一端固定,一端浮動,只有一個操作點,這就使對棧上數(shù)據(jù)進行操作時效率低。例如對于FORTH語言動詞“十”而言,要完成參數(shù)棧棧頂、次棧頂?shù)募臃?,棧狀態(tài)的變化如下式(snt→S(n+t))該操作過程一般描述為取出棧頂值作為ALU的輸入之一;取出次棧頂值作為ALU的另一個輸入值;完成加法操作;把結果壓棧。這一操作要花費4個周期(這里設對棧存貯區(qū)的讀出和寫入均在單周期內(nèi)完成)??梢?,解決上述問題是面向堆棧的機器的關鍵。本發(fā)明的結構中,上述操作不但可在單周期內(nèi)完成,而且可以復合其它多條非ALU運算的FORTH指令,在單周期內(nèi)完成。也就是說,可以高效地表達FORTH語言單詞的語義。本發(fā)明中對參數(shù)棧和返回棧的管理部件FSD、FRD及移位寄存器部件FIN的設計解決了上述問題,后面將具件說明上述部件結構。FORTH語言任何單詞的操作都以棧上數(shù)據(jù)準備好為條件,而當前單詞的執(zhí)行結果又為下一單詞的執(zhí)行準備好數(shù)據(jù),因此這里零尋址方式。訪問內(nèi)存的操作由一個FORTH單詞依據(jù)棧上的地址實現(xiàn),已不屬于尋址方式的意義范圍,而最初的地址或數(shù)據(jù)可以由當前PC為地址,從內(nèi)存中取一數(shù)據(jù)壓棧的指令完成。在本發(fā)明的體系結構中,內(nèi)存地址管部部件FPCA反映了這種需要,如圖8所示。后面將具體敘述它的結構。提高CPU內(nèi)部各部件的并行執(zhí)行度是計算機體系結構設計共同追求的目標。與傳統(tǒng)的計算機相似,本發(fā)明結構中具有指令預取,預處理功能。除此之外,還具有一般計算機所沒采用的新設計。下面將具體說明。本發(fā)明的體系結構中的TOP寄存器和NXT寄存器中采用了雙鎖存器設計。雙鎖存器的原理如圖14所示。雙鎖存器的作用是寄存器的輸入和輸出可以同時進行,或者可以做到先輸入后輸出與先輸出后輸入,可以通過兩個鎖存開關信號的控制對寄存器進行破壞性或非破壞性寫入。本發(fā)明中的SD、RT、RD、RPL、SPL、REPT、PC寄存器也采用了這種結構。圖15中表示了本發(fā)明結構中TOP、NXT寄存器的雙鎖存器結構。在ALU的輸出進入TOP寄存器的同時,TOP的原值同時可送入NXT,同時NXT寄存器原來的內(nèi)容可送往其他地方。這一操作由TL、NL信號控制,這是使本發(fā)明堆棧高效進行操作的主要設計之一。相對于傳統(tǒng)計算機的時序控制而言,本發(fā)明采用了無時序控制方式。傳統(tǒng)的計算機中的組合邏輯控制部件中包括三個部分指令譯碼部分;時序發(fā)生器;組合邏輯譯碼電路。組合邏輯譯碼電路根據(jù)時序發(fā)生器的時序信號,綜合當前指令的要求和狀態(tài)反饋控制信號,最終產(chǎn)生一系列微操作控制信號,控制各部件完成指令所規(guī)定的各項操作。在此,一條指令包含多個CPU周期,而一個CPU周期包含多個節(jié)拍脈沖信號。組合邏輯譯碼電路可以在單個節(jié)拍脈沖內(nèi)安排并行動作的微操作控制信號,而在不同的節(jié)拍脈沖里安排有先后次序的微操作控制信號。本發(fā)明的體系結構中的組合譯碼邏輯將不需要上述的時序發(fā)生器,代之以把單個時鐘脈沖經(jīng)延時和譯碼產(chǎn)生兩個小時鐘控制信號,由這兩個時鐘脈沖控制有先后次序的微操作,而在數(shù)據(jù)通路及部件的設計上安排大部分的操作可以無時序地完成。盡管內(nèi)部的微操作仍不可避免有先后操作,這里在一個時鐘周期內(nèi)的時序,與時序發(fā)生器的概念是不同的。在這個意義上,即在單個時鐘周期內(nèi)可以完成相關的有先后的微操作,可以說實現(xiàn)了無時序控制。圖16表示了時鐘脈沖CLK與兩個小時鐘脈沖CP1和CP2之間的波形關系。CP1和CP2的主要作用是控制雙鎖存器開關的時刻,使一個寄存器的上下兩個鎖存器永遠不能同時打開,保證可靠地讀出和寫入寄存器。本發(fā)明的體系結構中,實現(xiàn)了FORTH語言的程序控制指令和結構指令,它們是IF,ELSE,DO……+LOOP,BEGIN,UNTIL,REPEAT,WHILE,F(xiàn)OR……NEXT。這里便大大加快了FORTH的執(zhí)行速度。下面將參照附圖對本發(fā)明體系結構中的各個部件的結構做出說明。FORTH語言對參數(shù)棧的棧頂,次棧頂和第三項的操作最為頻繁,本發(fā)明在CPU內(nèi)部設置了三個寄存器TOP寄存器,NXT寄存器和SD寄存器。對參數(shù)棧棧頂,次棧頂和第三項的操作相當于對寄存器的操作,使計算機執(zhí)行FORTH語言的效率大大提高。當然,在CPU中不一定只限于設置三個寄存器,也可設四個五個……n個等等,此處只是舉例說明。上述寄存器采用雙鎖存器結構,在對棧頂寄存器TOP壓入一數(shù)值的同時,可以把TOP寄存器的原值傳送給次棧頂寄存器NXT,而NXT的原值傳送給SD寄存器,SD寄存器的原值傳送給參數(shù)棧存貯區(qū),這樣就完成了棧的壓入操作。從參數(shù)棧中彈出一值,其操作過程正好相反。圖3和圖4分別給出了二個棧的管理部件FSD和FRD的結構,從中也可以看出寄存器TOP、NXT和SD的關系。圖3中的各部分的說明如下WES參數(shù)棧存貯區(qū)的讀/寫信號線,它還有控制三態(tài)門SD(PAD)的作用;SDBUS參數(shù)棧存貯區(qū)16位雙向數(shù)據(jù)總線(外總線),出入棧的數(shù)據(jù)均通過該數(shù)據(jù)總線;SDA內(nèi)部16位傳輸線,從參數(shù)棧存貯區(qū)讀出的數(shù)據(jù)由此送到雙鎖存寄存器SD中;SDB內(nèi)部16位傳輸線,對參數(shù)棧寫入的數(shù)據(jù)由此送到SDBUS總線;SPBUS參數(shù)棧存貯區(qū)的10位地址總線(外部總線),通過它確定對棧存貯區(qū)的哪個單元做讀或?qū)懖僮?SPEN外部地址使能線,它控制SP的內(nèi)容是否傳送到SPBUS;SP(PAD)三態(tài)門;SP內(nèi)部棧存貯區(qū)地址總線,它由多路轉換器MUX-SPL的輸出決定;TD寄存器TOP或D的輸出,即圖5中的MUX-TD多路轉換器的輸出;SPL參數(shù)棧指針寄存器,也是雙鎖存器結構,LN1SPL和LN2SPL分別是其控制信號,其輸出送往圖7的MUX-Y多路轉換器;SPAS參數(shù)棧指針SP的加1減1器,CSPAS為控制信號;NXT寄存器NXT的16位輸出信號,可參見圖5;SDSD寄存器,雙鎖存器結構,LN1SD和LN2SD分別為控制信號,其輸出值送經(jīng)圖5中的多路轉換器MUX-N由圖3可見,通過MUX-SD,在微操作控制信號MSD的控制下,可以選擇TD或NXT作為參數(shù)棧寫入的數(shù)據(jù);通過MUX-SPL可以選擇AS,SPL,TD三者之一作為參數(shù)棧寫入、讀出操作的地址值,AS是SPL的內(nèi)容加1或減1的結果,MUX-SPL的常態(tài)輸出是AS,而且是SPL減1的值,TD是TOP寄存器輸出的低10位。棧存貯區(qū)的寫入有兩種選擇,即多路轉換器MUX-SD控制的TOP寄存器或D寄存器和NXT寄存器的輸出。另外,棧存貯區(qū)的讀出值一定送往SD寄存器,而SD寄存器的輸出是參數(shù)棧次棧頂寄存器NXT的輸入之一,SD的內(nèi)容也可以由多路轉換器MUX-Y選擇參與ALU運算(可以參見圖7)。對參數(shù)棧的讀、寫操作如下TOP、NXT、SD分別為棧頂、次棧頂和第三項,棧存貯區(qū)的實際棧頂?shù)膬?nèi)容與SD寄存器相同。因此,完成一次壓?;虺鰲?,實際上要完成三個寄存器之間的傳送,并使SD寄存器始終保持與棧存貯區(qū)內(nèi)實際棧頂?shù)膬?nèi)容一致。設壓入一個新值VX(見圖3)VX送到TOP同時TOP原值送到NXT同時NXT原值通過MUX-SD送到SDB同時在WES為低(三態(tài)門導通)時送到SDBUS總線,同時通過SDBUS和SDA總線送到SD寄存器。寫入的地址由MUX-SPL選通AS,送到SPBUS,在WES有效時完成對棧的寫入操作。完成操作后,把SP值送SPL寄存器,完成棧指針的修改,即AS=SPL-1送到SPL。設要把TOP寄存器的內(nèi)容VX彈出,則對棧的操作過程如下(見圖3)取出TOP中的值VX,同時NXT值送TOP,同時SD內(nèi)容送NXT寄存器,同時CSPAS=1使AS=SPL+1,MUX-SPL選擇AS作為棧讀出操作的地址由SP送到SPBUS,在WES為1時讀有效,送到SDBUS,同時回送到SD寄存器,完成讀出操作后把SP的值送入寄存器SPL中,完成修改指針SPL+1送SPL的操作。在參數(shù)棧的管理中,考慮到入棧操作必須盡快空出TOP寄存器,故此NXT寄存器的內(nèi)容必須盡快送入棧存貯區(qū),因此,使多路轉換器MUX-SPL的常通態(tài)所選的棧存貯區(qū)地址就是入棧操作時NXT寄存器的內(nèi)容所要存入的單元地址,這就是設置多路轉換器MUX-SPL的常通態(tài)為SPL-1的原因(SPL-1所指的是棧存貯區(qū)空單元)。與此相反,在出棧操作時,要求從棧存貯區(qū)取出數(shù)據(jù)S1的操作不必太快,只要求盡快把TOP寄存器內(nèi)容送出,盡快改變TOP、NXT寄存器的內(nèi)容即可,而這些操作都是寄存器間的操作,故自然滿足要求。這樣,只要求在當前指令周期內(nèi)把S1值送入SD寄存器。在完成這一操作時,可以較從容地完成SPL+1的操作,MUX-SPL選通,然后才完成棧存貯區(qū)的讀操作??梢钥闯?,通常涉及外通路的操作延時在這里對參數(shù)棧操作的速度并不產(chǎn)生影響,對棧存貯器的速度要求不高(與主存貯器的訪問頻寬相同即可)。從指令執(zhí)行的效果看,這里的棧管理達到了快速、并行,解決了外通路提供數(shù)據(jù)的速率遠低于CPU的處理速率的這一矛盾。參見圖4對返回棧管理部件FRD的說明如下在CPU內(nèi)部配置了兩個寄存器作為返回棧棧頂和次棧頂。它們分別是RT寄存器(20位)和RD寄存器(20位)。RT寄存器設在圖6所示的指令重復執(zhí)行控制部件FREPT之中,但也可設在返回棧管理部件FRD之中。返回棧存貯區(qū)被設置為20位,以滿足保存尋址能力為1M字的20位地址的需要。在圖4中,有一個4位的擴展寄存器ID,其作用與棧管理部件FRD無密切關系,它僅僅是為了擴展外部存貯區(qū)空間而備用。返回棧的作用是通過把程序計數(shù)器PC值壓入返回棧和把返回棧棧頂值彈出并送程序計數(shù)器PC實現(xiàn)單詞調(diào)用時保護和恢復斷點地址。返回棧棧頂寄存器RT與程序計數(shù)器PC的數(shù)據(jù)通路見圖8所示的主存貯區(qū)地址管理部件FPCA。RT(L)和RT(H)分別是20位寄存器的低16位和高4位,PC寄存器的輸出送RT寄存器的情況可以在圖6中看出,即PC(H)和PC(L)分別送入多路轉換器MUX-RTH和MUX-RT。圖5表示了本發(fā)明的結構中的移位寄存器,部件FTN,它包含了一部分控制電路。FTN部件的主要作用是作為帶有移位功能的參數(shù)棧棧頂寄存器和次棧頂寄存器。下面具體說明圖5中的各個部分。TN是帶有移位功能的雙鎖存寄存器,其結構如圖17所示。其中LN1和LN2為二級鎖存器的開關信號,在該二級鎖存器之間設置一個桶形移位器(BarralShifter),該桶形移位器可以完成右移二位,一位,不移,左移一位的操作。進入TOP寄存器的數(shù)據(jù)可以經(jīng)過桶形移位器的移位或不移而傳送到第二級鎖存器。MUX-T和MUX-N是兩個多路轉換器。寫入TOP和NXT寄存器的數(shù)據(jù)分別有4個來源,通過這二個多路轉換器分別選一種送上述寄存器。MUX-TD是選擇TOP寄存器的輸出和D寄存器(位于主存數(shù)據(jù)端口部件FD內(nèi))的輸出的多路轉換器。從圖1和圖2中可以看出,TOP寄存器是本發(fā)明的體系結構中數(shù)據(jù)通路的發(fā)散點,而D寄存器是主存數(shù)據(jù)端口數(shù)據(jù)寄存器,通過TD信號通路,可以把主存取出的數(shù)據(jù)和參數(shù)棧棧頂?shù)臄?shù)據(jù)發(fā)送到各個寄存器。TH和NH均為4位寄存器,它們的作用是當需要用寄存器TOP和NXT處理20位的地址值時,在其中存放20位地址的高4位。MUX-TH和MUX-NH分別是TH和NH寄存器的輸入信號多路轉換器。MUX-HAS和MUX-AS分別是TH、NH寄存器和TOP、NXT寄存器的輸出多路轉換器,其作用是選擇(TH,TOP)還是(NH,NXT)進入一個20位的加1減1器TNAS。加1減1器TNAS可以實現(xiàn)對參數(shù)棧棧頂或次棧頂?shù)募?減1操作,這種操作在FORTH語言中經(jīng)常遇到。在圖5中下方的一組信號線表示它們是從譯碼控制部件FCC發(fā)出或送入FCC的控制信號反饋信號。圖上方的輸入信號線的內(nèi)容如下SD是參數(shù)棧第三項寄存器SD的輸出信號線,它可以通過多路轉換器MUX-N送入NXT雙鎖存寄存器;D和ALU分別代表從數(shù)據(jù)寄存器D和算術邏輯運算器ALU的輸出,它們可以通過多路轉換器MUX-T的選擇,寫入?yún)?shù)棧棧頂寄存器TOP;IL(0-7)是16位指令格式的低8位,其作用是,在以指令格式的低8位立即數(shù)為20位地址的高4位時,通過該通路可以把高4位地址分別寫入TH,NH寄存器。圖6中的信號線中NCC,EQN是ALU的運算結果狀態(tài)標志值,NCC是進位位的“非”,EQN是“相等”狀態(tài)的“非”;DRX和DTX是一位信號線,DRX可以把串、并I/O端口FDS/P從外部接收到的串行輸入信號送入TOP寄存器的最高位DTX可以把TOP寄存器的最低位傳送到I/O端口EDS/P,實現(xiàn)串行輸出;TOP和NXT代表參數(shù)棧棧頂、次棧頂輸出信號,TOP送往FALU部件的ALU輸入端和FPCA部件,NXT送往三個不同部件,即多路轉換器MUX-Y、MUX-SD及FPCA部件;HCLK是加速時鐘,它來自CPU之外,可以對乘、除、開方、平方算法加速。FTN部件是本發(fā)明中重要部件之一,它的主要功能有1.作為參數(shù)棧的棧頂、次棧頂,實現(xiàn)對棧的靈活操作;2.作為計算機體系結構的數(shù)據(jù)通路的發(fā)散點;3.作為移位寄存器,可對寫入TOP和NXT寄存器的數(shù)據(jù)進行右移二位、一位或左移一位的操作;4.作為并行串行I/O端口,在串行輸入輸出時的串/并、并/串轉換電路實現(xiàn)串行通訊;5.作為乘除運算的兩個移位寄存器和開平方運算的乘除寄存器;6.作為存放主存貯區(qū)地址之用,通過TOP和NXT的輸出送主存地址管理部件FPCA,實現(xiàn)以TOP、NXT為地址的主存貯區(qū)的訪問7.除了CP1和CP2信號用于TOP和NXT雙鎖存寄存器的兩級開關控制具有先后次序之外,其他從FCC控制部件發(fā)出的控制信號都是無時序的,可使FTN部件的操作與其他部件操作并行進行。圖6表示了本發(fā)明結構中的指令重復執(zhí)行部件FREPT。該部件結構較簡單,它由一個16位的指令重復執(zhí)行控制寄存器,20位的返回棧棧頂寄存器(RT、RTH)和一個加1減1器組成。RD寄存器作為返回棧棧頂寄存器,其輸出值可以寫入返回棧次棧頂寄存器,寫入程序計數(shù)器PC,RT寄存器的輸入信號來源有返回棧吹棧頂寄存器RD和程序計數(shù)器PC。在圖6中,MUX-RTH和MUX-RT的輸入端可以看到這些信號。指令重復執(zhí)行控制寄存器REPT是一個16位雙鎖存器,該鎖存器的最高位被單獨引出作為指令譯碼控制部件FCC的輸入信號,在其有效時(等于零),使FCC發(fā)生重復執(zhí)行一條指令所需要的控制信號,每執(zhí)行一次當前的指令,通過加1減1器REPTIAS把REPT寄存器的值減1,一直到REPT=FFFFH時為止。圖7表示了本發(fā)明的體系結構中的運算部件FALU,它由四個部分組成MUX-Y是多路轉換器,它可以選擇24路輸入信號參與ALU運算;ALU是算術邏輯運算單元,其作用是完成9種算術邏輯運算,即T+Y,T+Yc,T-Y,T-Yc,Y-T,Y-Tc,與,或,非。5種FORTH動詞,即NIPDUP,SWAP,NIPOVER,DROPDUP,DROPOVER。兩種其余操作(即ALU=T和ALU=T);COM是一個比較器,作用是把RD寄存器的值與ALU的輸出值做比較,產(chǎn)生一個狀態(tài)信號GEQ送FCC部件,以此改變一些操作的控制;MSR是一個開平方算法硬布線,通過把開平方算法硬化的方法,可以大大提高開平方的運算速度。利用本發(fā)明結構中的FTN和ALU部件可以實現(xiàn)兩個16位二進制數(shù)的乘除、開平方運算。乘除運算分別需要16和17個時鐘周期,開平方運算僅需8個的時鐘周期。開平方運算的硬件設計原理如圖12所示。圖中,TOP、NXT和SR為雙鎖存寄存器,其中TOP存放被開平方數(shù),NXT存放開平方數(shù),SR初值為零,終值為TOP寄存器中數(shù)據(jù)的平方根值。圖12中所示的電路主要是完成圖18所示的開平方算法,它可以在單周期內(nèi)完成一次圖18所示的過程,由REPT寄存器控制循環(huán)8次,即在8個時鐘周期內(nèi)完成開平方運算。開平方硬件電路的特點在于它利用指令重復執(zhí)行控制寄存器REPT,以一條ALU操作指令的重復執(zhí)行完成開平方操作,使開平方算法可以利用現(xiàn)有的硬件資源,如ALU,TOP,NXT寄存器,節(jié)省了硬件開銷,使在一個CPU中實現(xiàn)開平方硬件線路成為可能。本發(fā)明的體系結構中的乘除算法及硬件電路的設計原理與一般計算機的設計大致相同,不同點在于一般的設計中,使用專用加法器而不是使用本發(fā)明所用的ALU來進行乘除運算。因為本發(fā)明可以利用指令重復執(zhí)行控制寄存器重復執(zhí)行一條ALU操作指令來完成乘除操作,所以它節(jié)約了硬件開銷。圖8表示了主存貯區(qū)地址管理部件FPCA的結構。FPCA是由三個部分組成的,它們是程序計數(shù)器PC(20位);地址偏值加法器PCAADD;多路轉換器MUX-AL的MUX-AH。圖8中的ABUS是主存貯區(qū)地址總線(20位);A(PAD)是三態(tài)門;A是20位地址線,通過三態(tài)門與ABUS相連;A(H)是20位地址線的高4位;A(L)是20位地址線的低16位;IL(0-14)是指令格式的低15位立即數(shù),TOP20是TOP和TH寄存器的輸出信號;NXT20是NXT和NH寄存器的輸出信號;RT20是返回棧棧頂寄存器的輸出信號。FPCA部件通過多路轉換器MUX-AH和MUX-AL的選擇,選出八種地址來源作為訪問主存貯區(qū)的地址,同時地址偏值加法器PCAADD修改指針,然后送PC寄存器保存。該部件的特點是,它改變了傳統(tǒng)設計中由程序計數(shù)器PC直接向地址總線提供地址的設計。圖9表示了本發(fā)明體系結構中的數(shù)據(jù)端口部件FD,它由兩個寄存器和一個多路轉換器組成,其中D寄存器用于存放從主存貯區(qū)讀出或?qū)懭胫鞔尜A區(qū)的數(shù)據(jù),IL寄存器用于存放從主存貯區(qū)取出的指令;多路轉換器MUX-DIO用于選擇4種數(shù)據(jù)來源的一種送主存貯區(qū)數(shù)據(jù)總線DBUS。圖中的WED是讀寫控制信號。圖10表示了本發(fā)明的體系結構的八位串/并I/O端口FDS/P部件,它可以實現(xiàn)并行、串行I/O通訊,可以實現(xiàn)位屏蔽控制。在圖10中,XSP是一個8位寄存器,其作用是設置FDS/P端口的串行或并行工作方式,圖中的XIO是一個8位寄存器,其作用是設置FDS/P端口為輸入狀態(tài)或輸出狀態(tài);XBS是一個8位寄存器,其作用是屏蔽FDS/P端口的8位I/O通路的任意幾位或全部位;XBSDR是位屏蔽譯碼驅(qū)動器,其作用是通過對指令的第5~7位的譯碼,強行改變XBS寄存器所設置的位屏蔽狀態(tài);DS/P內(nèi)部包括一個數(shù)據(jù)寄存器及對XBS、XIO、XSP信號的譯碼電路,以實現(xiàn)XBS、XIO和XSP的控制作用。圖11表示了本發(fā)明結構中的并行I/O端口FP,它是16位端口,其結構非常簡單。FP端口由三部分組成一個位屏蔽寄存器BBS,它與FDS/P端口中的XBS作用相同;一個輸入輸出方向寄存器BIO,它與FDS/P端口中的XIO作用相同;一個部件P,它包括一個數(shù)據(jù)寄存器及BBS、BIO的譯碼控制電路,以實現(xiàn)BBS、BIO的I/O方向控制及位屏蔽功能。權利要求1.一種計算機體系結構,它包括一個第一存貯裝置,它用于存放一個操作的準備數(shù)據(jù)、操作的中間結果和完成操作的最終結果,并且以堆棧方式操作;一個第二存貯裝置,它用于存放子程序調(diào)用的斷點地址、和一些必要的數(shù)據(jù);并且以堆棧方式操作;一個主存貯裝置,它用于存放計算機的系統(tǒng)軟件,指令和用戶程序;一個第一存貯裝置的管理裝置,它根據(jù)指令譯碼所產(chǎn)生的微操作控制信號完成對第一存貯裝置的寫入操作和讀出操作;一個第二存貯裝置的管理裝置,它根據(jù)指令譯碼所產(chǎn)生的微操作控制信號完成對第二存貯裝置的寫入操作和讀出操作;一個主存貯裝置的管理裝置,它用于形成訪問主存貯裝置的地址;一個主存貯裝置數(shù)據(jù)端口,用于接收主存貯裝置讀出的指令或數(shù)據(jù)以及為完成對主存貯裝置的寫入操作準備好數(shù)據(jù);一個組合邏輯譯碼控制裝置,它完成對主存貯裝置中取出的指令的譯碼,產(chǎn)生多個微操作信號;一個運算裝置,它包括一個第一多路轉換裝置(MUX-Y)和一個進行多種算術邏輯運算的算術邏輯運算裝置,該多路轉換裝置選擇第一存貯裝置管理裝置、第二存貯裝置管理裝置、主存貯裝置管理裝置、主存貯裝置數(shù)據(jù)端口中多個寄存器的內(nèi)容之一進入算術邏輯運算裝置參與運算操作;一個移位寄存器裝置,它包括至少一個第一寄存器(TOP)和一個與之相連的第二寄存器(NXT),第一寄存器接收來自算術邏輯運算裝置的運算結果,第一寄存器和第二寄存器中的內(nèi)容分別作為第一存貯裝置的內(nèi)容的最后一項和倒數(shù)第二項,第一寄存器和第二寄存器的輸出與上述算術邏輯運算裝置的輸入端相連,以便參與運算操作,第一寄存器作為體系結構中數(shù)據(jù)通路的發(fā)散點,與第一存貯裝置管理裝置、第二存貯裝置管理裝置,主存貯裝置管理裝置、主存貯裝置數(shù)據(jù)端口及運算裝置中的多個寄存器相連接。2.如權利要求1所述的計算機體系結構,其中包括一個第三寄存器(SD),該第三寄存器分別與第二寄存器和第一存貯裝置相連接,該第三寄存器中的內(nèi)容作為第一存貯裝置的內(nèi)容的倒數(shù)第三項,并且與第一存貯裝置中實際內(nèi)容的最后一項相對應,第二寄存器的內(nèi)容寫入第一存貯裝置和從第一存貯裝置讀出的內(nèi)容都通過該第三寄存器,該第三寄存器還與算術邏輯運算裝置相連,以保證其參與運算操作。3.如權利要求2所述的計算機體系結構,其中所述的第一存貯裝置管理裝置還包括一個第二多路轉換器(MUX-SD),該第二多路轉換器選擇第一寄存器和第二寄存器的輸出值之一作為寫入第一存貯裝置和第三寄存器的內(nèi)容,從而使第一存貯裝置具有第一寄存器和第二寄存器這兩個數(shù)據(jù)來源,并保證第三寄存器的內(nèi)容與第一存貯裝置中實際內(nèi)容的最后一項相同。4.如權利要求3所述的計算機體系結構,其中所述的第一寄存器、第二寄存器和第三寄存器中的每一個都由雙鎖存器構成,該雙鎖存器中的每一個都接收來自組合邏輯譯碼控制裝置的控制信號,從而使第一寄存器、第二寄存器和第三寄存器的輸入和輸出可以同時進行,也可使先輸入后輸出,也可使對第一寄存器、第二寄存器和第三寄存器中的每一個進行破壞性和非破壞性的數(shù)據(jù)寫入。5.如權利要求4所述的計算機體系結構,其中所述的移位寄存器裝置中的第一寄存器和第二寄存器都是由兩級鎖存器組成,該兩級鎖存器之間設置一個桶形移位器,在來自組合邏輯譯碼控制裝置的信號的控制下,第一級鎖存器中的內(nèi)容可以左移、右移或不移之后送至第二級鎖存器。6.如權利要求5所述的計算機體系結構,其中所述的移位寄存器裝置中還包括一個第三多路轉換器(MUX-T),一個第四多路轉換器(MUX-N)和一個第五多路轉換器(MUX-TD);第三多路轉換器的輸入端分別與算術邏輯運算裝置的輸出端及主存貯裝置數(shù)據(jù)端口中的一個數(shù)據(jù)寄存器(D)相連接,第三多路轉換器的輸出端與第一寄存器的輸入端相連接;第四多路轉換器的輸入端分別與第三寄存器的輸出端和第五多路轉換器的輸出端相連接,第四多路轉換器的輸出端與第二寄存器的輸入端相連接;第五多路轉換器則接收來自主存貯裝置數(shù)據(jù)端口中的數(shù)據(jù)寄存器(D)和第一寄存器輸出的信號。7.如權利要求6所述的計算機體系結構,其中所述的移位寄存器裝置中還包括一個第一加一減一器(TNAS)和一個第六多路轉換器(MUS-AS),該第六多路轉換器選擇第一寄存器和第二寄存器內(nèi)容中的一個進入第一加一減一器,從而實現(xiàn)對第一存貯裝置最后一項及倒數(shù)第二項進行加一減一操作。8.如權利要求7所述的計算機體系結構,其中所述的第一存貯裝置管理裝置中包括一個第一存貯裝置指針寄存器(SPL),用于確定對第一存貯裝置進行讀出和寫入的地址,對第一存貯裝置進行讀出和寫入的地址由一個第七多路轉換器(MUX-SPL)提供,該第七多路轉換器選擇第一存貯裝置指針寄存器的輸出值和該輸出值送入一個第二加一減一器(SPAS)后該第二加一減一器的輸出值之一做為對第一存貯裝置進行讀出和寫入的實際地址。9.如權利要求8所述的計算機體系結構,其中所述的第七多路轉換器選擇第一存貯裝置指針寄存器的輸出值、第二加一減一器的輸出值和第一寄存器的輸出值之一做為對第一存貯裝置進行讀出和寫入操作的實際地址。10.如權利要求9所述的計算機體系結構,其中所述的第二存貯裝置管理裝置中包括一個第四寄存器(RT)和一個第五寄存器RD,該第四寄存器中的內(nèi)容作為第二存貯裝置中內(nèi)容的最后一項,第五寄存器中的內(nèi)容與第二存貯裝置中實際內(nèi)容的最后一項相同。11.如權利要求10所述的計算機體系結構,其中所述的第二存貯裝置管理裝置中還包括一個第八多路轉換器(MUX-RD),該第八多路轉換器選擇第四寄存器的輸出值和第五多路轉換器的輸出值之一作為寫入第二存貯裝置和第五寄存器中的內(nèi)容,從第二存貯裝置中讀出的內(nèi)容都通過第五寄存器進行。12.如權利要求11所述的計算機體系結構,其中所述的第二存貯裝置管理裝置中還包括一個第二存貯裝置指針寄存器(RPL),用于確定對第二存貯裝置進行讀出和寫入的地址,對第二存貯裝置進行讀出和寫入的地址由一個第九多路轉換器(MUX-RPL)選擇第五多路轉換器的輸出值和第二存貯裝置指針寄存器的輸出值和該輸出值送入一個第三加一減一器(RPAS)后該第三加一減一器的輸出值之一做為對第二存貯裝置進行讀出和寫入操作的實際地址。13.如權利要求12所述的計算機體系結構,其中所述的第九多路轉換器選擇第五多路轉換器的輸出值和第二存貯裝置指針寄存器的輸出值、第三加一減一器的輸出值和第一寄存器的輸出值之一做為對第二存貯裝置進行讀出和寫入操作的實際地址。14.如權利要求13所述的計算機體系結構,其中所述的組合邏輯譯碼控制裝置包括一個指令譯碼裝置,一個組合邏輯裝置及一個時鐘脈沖延時和譯碼裝置,該時鐘脈沖延時和譯碼裝置提供一個第一小時鐘脈沖和一個第二小時鐘脈沖,由它們控制有先后次序的微操作。15.如權利要求14所述的計算機體系結構,其中所述的運算裝置中的算術邏輯運算裝置(ALU)中包括進行九種邏輯、算術運算(T+YT+YcT-YT-YcY-TY-Tc與(AND)或(OR)異或(XOR)),五種FORTH動詞操作(NIPDUP,SWAP,NIPOVER,DROPDUPDROPOVER)和ALU=T、ALU=Y的裝置。16.如權利要求15所述的計算機體系結構,其中還包括一個指令重復執(zhí)行控制裝置,它由一個指令重復執(zhí)行控制寄存器和一個第四加一減一器組成,該指令重復執(zhí)行控制寄存器的最高一位作為指令譯碼控制部件的輸入信號,在該信號有效時,指令譯碼控制部件發(fā)出重復執(zhí)行一條指令所需要的控制信號,每執(zhí)行一次當前指令,第四加一減一器便把指令重復執(zhí)行控制寄存器的值減一。直至減到一個確定值為止。17.如權利要求16所述的計算機體系結構,其中的運算裝置中還包括一個用于進行開平方運算的裝置,它利用指令重復執(zhí)行控制裝置重復執(zhí)行一條操作指令,來完成開平方操作,從而提高了計算機的開平方運算速度,節(jié)省了硬件開銷。18.如權利要求16所述的計算機體系結構,其中所述的第一多路轉換器至少選擇下述各寄存器之一的內(nèi)容進入算術邏輯運算裝置參與運算第一寄存器,第二寄存器,第三寄存器,第四寄存器,第五寄存器,第一存貯裝置指針寄存器,第二存貯裝置指針寄存器,主存貯裝置數(shù)據(jù)端口中的數(shù)據(jù)寄存器,開平方運算裝置中的一個寄存器及主存貯裝置管理裝置中的一個指針寄存器。全文摘要本發(fā)明是一種支持第四代計算機高級語言FORTH,并采用RISC、CISC和WISC技術而設計的計算機體系結構,它包括新穎的棧管理部件、運算部件、移位寄存器部件及控制部件等,所有這些部件的組合及單個設計都體現(xiàn)了本發(fā)明的總體構思,與傳統(tǒng)的計算機相比,本發(fā)明的計算機的運算速度更快,結構更簡單,操作編程更容易和靈活。文檔編號G06F15/00GK1035571SQ89101048公開日1989年9月13日申請日期1989年3月4日優(yōu)先權日1989年3月4日發(fā)明者劉大力申請人:北京市大興多思軟件有限公司