欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

基于高級語言的宏體系結構計算機的設計方法

文檔序號:6406559閱讀:293來源:國知局
專利名稱:基于高級語言的宏體系結構計算機的設計方法
技術領域
本發(fā)明涉及一種基于高級語言的宏體系結構計算機的設計方法。
傳統(tǒng)上,計算機體系結構定義為系統(tǒng)程序員所看到的計算機的屬性,包括硬件屬性與軟件屬性。而我們提出的基于高級語言的宏體系結構計算機的設計方法則是以計算機體系結構的新定義為基礎的。新的計算機體系結構的定義是由高級語言,甚高級語言、并行語言、算法、并行算法、軟件系統(tǒng)等看到的計算機屬性。亦即設計者在設計計算機體系時,不再是從程序員的角度,而是把自己當作是某種語言,算法或軟件系統(tǒng)來設計計算機軟、硬件體系,為實現某種或某些算法而描述、定義、設計、組織一個完整的計算機體系。
本發(fā)明提出的基于高級語言的宏體系結構計算機的設計方法的內容是依據軟件界面構成硬件體系,而不是傳統(tǒng)的依據硬件結構來勾畫軟件界面。分析某種高級語言的各關鍵語言元素,在實現這些語素的基礎上,使最終構成的計算機體系能高效率地實現該種語言,并進而通過軟件編譯能高效地實現各種常用語言。
分析實現某個語言元素的過程是列出該語素所涉及的初始數據狀態(tài)與經該語素處理后的結果數據狀態(tài)。比較兩個狀態(tài),分析、寫出從初態(tài)如何經該種語言的最基本語素處理而得出結果數據狀態(tài)。去除其中的冗余操作部分,然后勾畫出實現該語素的數據流程硬件體系,據此,完成該語素的硬件電路設計。
以下是本發(fā)明的


圖1是“MAX”的參數棧棧狀態(tài);
圖2是實現“MAX”的硬件結構;
圖3是“MIN”的參數棧棧狀態(tài);
圖4是既可實現“MAX”也可實現“MIN”的硬件結構;
圖5是“3PICK”含義的示意圖;
圖6是>R與R>的參數棧與返回棧狀態(tài);
圖7是“MAXMIN”的參數棧棧狀態(tài);
圖8是“MAXMIN”的入棧數據選擇控制信號的生成電路。
下面參照附圖舉例說明如何按照本發(fā)明的方法設計實現Froth語言基本語素MAX,MIN的硬件結構。
Forth語言是美國人CharlesMoore于1969年提出的一種計算機高級語言,被稱為第四代高級語言。有關細節(jié),請參閱Forth語言的專門書籍。
MAX的含義是求兩個數中的大值,而MIN的含義則是求兩個數中的小值。
在軟件工程中,對于程序數據操作有破壞性操作,即只保留結果數據,以及非破壞性操作,即既保留結果數據,又保留原始數據之分。要求中間操作均應是非破壞性操作。軟件工程中還有無用單元回收的概念,即要在得出最終結果后,清除無用數據,讓出資源。
在非破壞性與無用單元回收要求下,我們來考慮MAX和MIN的實現方案。
如果基于傳統(tǒng)的計算機體系設計方法,設計者由功能需求著手,MAX和MIN的工作流程如下首先要能取出要比較的兩個數,然后將它們放到適當的地方(寄存器或堆棧中)再進行比較操作。最后,將比較結果(MAX操作中的大數,MIN操作中的小數)加以保存。簡述上列流程如下
如果基于上述流程,尋求MAX和MIN的硬件實現方法,會感到比較棘手,而要達到快速、高效,就更加困難。下面論述如何以Forth語言為界面,尋求MAX與MIN的硬件實現。
用最基本的Forth詞(詞是Forth語言的基本語素單位)描述MAX如下MAX
2DUP<IFSWAPTHENDROP;
堆棧操作與逆波蘭表達方式是Forth語言最基本的結構特點。Forth語言的所有數據操作均在堆棧中進行。而一個時間段內只有一個操作點是堆棧的另一個特點。在Forth語言中,只要恰當地管理好堆棧數據,就能較簡易地達到非破壞性與無用單元回收要求。逆波蘭表達方式與中綴表達方式的區(qū)別在于它將操作數均列于操作算符之前,而不是用操作符將操作數連結起來,而這正是計算機的實際處理順序。
如果要對兩個數(不妨假設為a,b)求大,只需在Forth語言環(huán)境下鍵入abMAX;
即可。
上述Forth程序段的執(zhí)行過程如下將a、b兩數壓入參數棧,其中b位于棧項,a位于次棧頂,然后調用單詞MAX。MAX的執(zhí)行過程則是2DUP,復制參數棧棧頂與次棧頂數據(以達到非破壞性要求);<,比較a是否小于b;IF,判斷a<b這個條件是否成立,如果成立,執(zhí)行IF…THEN結構之間的操作,如果不成立,就轉而執(zhí)行THEN后邊的操作;a<b條件成立,執(zhí)行SWAP,將a放到棧頂而將b放到次棧頂,即顛倒一下a與b在參數棧中的位置;THEN是個結構虛詞,設有具體的操作含義,只是為了使程序結構具有可實性才設置,我們稱這類詞為偽指令;DROP刪除棧頂數據,達到無用單元回收的目的。
圖1中反映了上述程序執(zhí)行過程中,參數棧初始數據狀態(tài)、結果數據狀態(tài)以及各操作步驟的棧數據狀態(tài)。最后,棧頂放a、b中的大數,并有一出棧動作,將上步中的參數棧棧頂第二頂填入次棧頂(由棧指針變化實現)。
比較初始時與結束時參數棧的數據狀態(tài),發(fā)現棧狀態(tài)由開始時的棧頂次棧頂分別填充b、a,變成結束時,棧頂放置a、b間的大數,而次棧頂則由開始時的棧頂第三頂填充。再分析各操作過程的棧狀態(tài),得出上述變化是經過三次入棧操作(2DUP操作進行兩次壓棧;<操作將比較結果標志壓入棧頂),五次出棧操作(<將復制得的a、b彈出;IF操作將比較結果標志彈出;DROP將無用數據彈出;次棧頂的填充需一次出棧操作)而實現的。再進一步觀察比較初始與結果的參數棧數據狀態(tài),會發(fā)現棧狀態(tài)結果只是要由a<b比較操作的結果標志決定參數棧棧頂是選a還是選b作為終態(tài)數據。而不論是選a還是選b,次棧頂均由開始時的棧頂第三項予以填充,亦就是該填充操作與前列操作無關。操作無關性是并行操作的必要條件,由此決定了次棧頂填充這一出棧操作與前述的棧頂數據選擇操作能并行完成。
由以上分析可以得出下列結論MAX只要通過棧頂與次棧頂數據的比較、棧頂存貯單元在比較結果控制下的數據選擇、以及填充次棧頂的出棧操作就能實現。而2DUP所需的兩次入棧操作,<的兩次出棧與一次入棧,IF,DROP的出棧操作都是冗余的,在硬件結構設計時,應不予考慮。
由上述結論,可以得出實現MAX的硬件體系結構如下作為數據存貯、操作區(qū)域的參數棧堆棧電路,其中棧頂次棧頂單元以獨立的寄存器形式實現。棧頂寄存器數據來源通路上設置一個多路選擇器,填初始操作數據時,選擇主存數據作為數據來源。在作MAX操作時,由比較器結果控制,選擇棧頂寄存器回流數據或次棧頂寄存器數據放入棧頂寄存器作為結果數據。還設有生成棧頂、次棧頂數據比較結果標志的比較器。電路結構如圖2所示。綜合前述,用圖2所示硬件結構,實現MAX的實質操作-兩數比較與數據選擇,并適當地連接數據流通路,這樣所構成的構造體系,就能實現Forth詞MAX-功能。
下面分析MIN的實現。MIN用Forth基本詞可表述為MIN2DUP>IFSWAPTHENDROP;
與MAX相比較,只是IF的轉移條件發(fā)生了變化。由MAX的“<”變成了MIN的“>”。類似MAX分析過程,不難得出MIN與MAX的數據狀態(tài)的差別只是棧頂保留的數據的最終結果是a與b中的小數。其參數?;驙顟B(tài)如圖3所示。最后,棧頂放a,b中的小數,并有一出棧動作,將上一步中的參數棧棧頂第三頂填入次棧頂(由堆棧指針變化實現)。
要完成MIN功能,只要將MAX硬件構成中,棧頂數據來源上的多路選擇器控制加以變化即可。MAX的棧頂數據來源,是由比較結果標志控制的多路選擇器,選擇棧頂與次棧頂數據中的大數放入棧頂寄存器;而MIN只是選擇小數而已。所以MAX與MIN的實現在硬件結構形態(tài)上是一致的。
如果用一個調制信號對比較器結果標志進行調制,用調制所得的信號控制棧頂數據選擇,使得在該調制信號不同時,棧頂數據既能選擇大數也能選擇小數,從而我們就可以用一個硬件結構同時實現MAX與MIN,如圖4所示。
所謂宏體系結構計算機,其中的“宏”意指宏加工,亦即用已有的低一層功能單元構成新的高層功能體系。例如,前面已構成了MAX與MIN的功能結構,如果要構成一個實現Forth詞MAXMIN的功能體系,就可以調用已有的MAX和MIN結構。正如軟件工程中所作的子程序調用。而Forth語言的功能擴展,也正是以低級詞構成高級詞這種宏加工方式實現的。
MAXMIN的含義是指對三個數求出其中的最大數據放在參數棧棧頂,并同時求出其中的最小數據放在參數棧次棧頂。類似前述分析MAX與MIN實現體系的過程,我們先將MAXMIN的Forth語言的實現寫出來,注意這里MAX與MIN都已作為基本詞而予以調用。MAXMIN3DUPMAXMAX>RMINMINR>;
這一程序段中,3DUP的含義是復制棧頂頭三頂,它也是經宏加工后實現的,其中一種實現方式是3DUP3PICK3PICK3PICK;
3PICK是Forth基本詞,其含義如圖5所示。
>R是Forth基本詞,其含義是將當前參數棧棧頂數據壓入返回棧棧頂,在這里就是將求得的最大值由參數棧棧頂送到返回棧棧頂,暫時保存起來。R>含義與>R正相反,是將返回棧棧頂數據送回參數棧棧頂。在這里,就是將暫時保存在返回棧中的最大值送回參數棧棧頂。>R與R>的操作含義見圖6。在這兒,設參數棧中的小數為A,B,返回棧中的數為a,b。
圖7中表示了MAXMIN操作前后,參數棧數據狀態(tài)以及其操作過程中,參數棧、返回棧內數據狀態(tài)(這里設三個數是A,B,C)。
分析圖7可以知道,在MAXMIN操作中,>R與R>這對操作是冗余的。再結合硬件特點分析,又能得出3DUP操作也是冗余的,因為在硬件結構中,相同操作數據的復制過程中只是將同一信號成連到不同操作部件上即可實現。由此我們可以得出只需由兩個前面已實現的MAX結構中的比較子結構與兩個MIN結構中的比較子結構,再加上兩個選擇器,就能實現MAXMIN的入棧數據選擇控制信號的生成電路,其結構框圖見圖8。
在構成整個實現MAXMIN功能的體系時,只要由圖8中的控制棧頂壓入數據的信號來控制參數棧棧頂數據選擇,由控制次棧頂壓入數據的信號來決定次棧頂的數據選擇,同時由堆棧電路實現與上述操作無關的參數棧棧頂第三項的填充操作,就能構成一次并行得到MAXMIN操作結果的硬件結構。
以上結合

了如何按照本發(fā)明設計三個具體硬件結構,但本發(fā)明的意義不僅僅局限于此。本領域的一般技術人員可以根據本發(fā)明的思想進行多種硬件結構的設計,因此本發(fā)明的保護范圍將由所附的權利要求所確定。
權利要求
1.一種基于高級語言的宏體系結構計算機的設計方法,其特征在于依據軟件界面構成硬件體系,而不是依據硬件結構來確定軟件界面。
2.如權利要求1所述的宏體系結構計算機的設計方法,其特征在于對于所要運行的高級語言的各個關鍵語言元素進行分析,根據分析結果,確定計算機的體系結構,從而使最終構成的計算機能高效率地實現該高級語言。
3.如權利要求2所述的宏體系結構計算機的設計方法,其特征在于在對高級語言元素進行分析時,列出該語言元素所涉及的初始數據狀態(tài)和經過該語言元素處理之后的結果數據狀態(tài),比較兩種狀態(tài),寫出如何從初始數據狀態(tài)經該語言元素處理而得出結果數據狀態(tài),去除其中的冗余操作部分,然后確定出實現該語言元素的數據流程和硬件結構。
4.如權利要求3所述的宏體系結構計算機的設計方法,其特征在于所要實現的高級語言是Forth計算機高級語言。
5.如權利要求4所述的宏體系結構計算機的設計方法,其特征在于通過編譯軟件,所述宏體系結構計算機能運行各種常用語言。
6.如權利要求5所述的宏體系結構計算機的設計方法,其特征在于在設計實現Forth語言基本語素MAX的硬件結構時,通過比較參數棧的數據的初始狀態(tài)和結束狀態(tài)以及運行過程,得到結論只要通過棧頂與次棧頂數據的比較、棧頂存貯單元在比較結果控制下的數據選擇、以及填充次棧頂的出棧操作MAX即可實現,而2DUP所需的兩次入棧操作,<的兩次出棧與一次入棧操作,IF和DROP的出棧操作都是冗余的,從而設計硬件結構時不予考慮。
7.如權利要求6所述的宏體系結構計算機的設計方法,其特征在于按照設計實現MAX的硬件結構的設計方法設計實現Forth語言基本語素MIN的硬件結構,除了棧頂存貯單元在比較結果控制下的數據選擇的不同之外,實現MIN的硬件結構與實現MAX的硬件結構相同。
8.如權利要求5所述的宏體系結構計算機的設計方法,其特征在于用已有的低一層的功能單元構成新的高層功能體系。
9.如權利要求8所述的宏體系結構計算機的設計方法,其特征在于利用已有的實現MAX和MIN功能的單元實現Forth語言中MAXMIN的功能。
10.權利要求9所述的宏體系結構計算機的設計方法,其特征在于在設計實現Forth語言中MAXMIN的功能的硬件結構時,通過比較參數棧的數據的初始狀態(tài)和結束狀態(tài)以及運行狀態(tài),得到結論只需兩個MAX結構中的比較子結構和MIN結構中的比較子結構及兩個選擇器,就能實現MAXMIN的入棧數據選擇控制信號的生成電路,由該電路產生的信號控制棧頂和次棧頂的數據選擇,并且由由堆棧電路實現參數棧棧頂第三頂的填充操作,就能實現一次并行得到MAXMIN操作結果的硬件結構,從而將>R和R>以及3DUP等冗余操作省略。
全文摘要
本發(fā)明提出了一種基于高級語言的宏體系結構計算機的設計方法。根據該方法設計計算機的硬件結構時,首先對要實現的高級語言的元素進行分析,列出該元素所涉及的初始數據狀態(tài)和結果數據狀態(tài)及運行過程,比較這兩種狀態(tài),去除其中的冗余操作部分,然后確定出實現該元素的硬件結構。
文檔編號G06F9/00GK1075020SQ9210068
公開日1993年8月4日 申請日期1992年1月28日 優(yōu)先權日1992年1月28日
發(fā)明者劉大力 申請人:北京市大興縣多思軟件有限公司
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
闻喜县| 大城县| 齐齐哈尔市| 高青县| 莒南县| 嵊泗县| 宝兴县| 沁阳市| 桃源县| 临夏市| 隆德县| 四平市| 平潭县| 乐山市| 长沙市| 彭山县| 郎溪县| 宝清县| 仁怀市| 搜索| 丹巴县| 诸城市| 苏尼特左旗| 睢宁县| 临高县| 鹤山市| 海林市| 肇源县| 安西县| 武功县| 开封市| 通辽市| 黄陵县| 麟游县| 沈丘县| 诸暨市| 宾阳县| 通许县| 郯城县| 满城县| 商洛市|