一種支持高級語言部分語句功能的處理器指令集的製作方法
2023-05-09 11:44:36 1
專利名稱:一種支持高級語言部分語句功能的處理器指令集的製作方法
技術領域:
本發明涉及處理器指令集,更具體的說,本發明涉及指令集對高級語言部 分語句功能的支持及其編碼方法和相應的處理器結構。
背景技術:
指令集是軟體和硬體之間的中間媒介,高級語言程序都需要翻譯到目標指令集才可以在硬體上執行。當前主流指令集可分為複雜指令集(CISC指令集) 和精簡指令集(RISC指令集)。CISC指令集功能強大,尋址方式多,對高級語言支持較好,但採用變長編 碼方式,指令格式複雜;同時,與存儲器的交互成為性能瓶頸。而RISC指令集 指令格式規整,長度一致,但面向寄存器-存儲器結構的處理器,只通過 L0AD/ST0RE指令和存儲器發生交互,在寄存器中完成算術邏輯轉移等操作,通 過簡化每條指令的操作,便於流水來提高執行效率, 一般不提供對高級語言的 直接支持。發明內容本發明的目的在於提供能夠直接支持高級語言特定的部分語句的指令集, 同時保持格式規整。為了實現上述目的,本發明提供一種支持高級語言部分語句功能的處理器指令集,單條指令完成高級語言的部分語句功能;結合定長與顯地址的特定編碼格式;並與無寄存器文件的處理器結構相結合。所述的高級語言支持包括A-B op C類型的語句,Java語言及0++的選擇語 句、開關語句和函數調用語句。所述A:B叩C類型的語句支持由單條指令提供三個操作數地址;根據地址 從存儲器中同時讀取兩個源操作數,並將計算結果寫回目標在存儲器中的位置。所述選擇語句、開關語句支持,其特徵在於單條指令提供判斷依據和兩 個轉移目標地址;根據第一操作數的計算結果進行轉移,為1轉移到第二操作3數給出的地址,為-i轉移到第三操作數給出的地址,為o順序執行。所述函數調用語句支持由單條指令完成函數調用;第一操作數給出被調用 函數初始地址,第二操作數給出調用參數塊地址,參數塊包含堆棧、實參;無 需額外指令保存現場。本發明還提供了該特定指令集的編碼方式,所述編碼方式中,指令由固定 位置且固定長度的保留位和操作碼,尋址方式描述符,地址碼組成;每條指令 的三個操作數的尋址方式均由獨立的欄位給出;每個尋址方式描述符對應一個 地址碼,指定32位立即數尋址,16位立即數尋址,直接尋址,間接尋址,寄存 器直接尋址,寄存器間接尋址或寄存器相對尋址等多種尋址方式。所述與無寄存器文件處理器結構的結合,即指令和數據均存儲在多埠存 儲器中,該多埠存儲器對指令和數據提供獨立的訪問通路,處理器直接從存 儲器同時獲取指令和三個操作數;除了輔助訪問存儲器的寄存器,沒有累加器 和通用寄存器。本發明的優點主要是提供對高級語言部分語句的支持,由單條指令完成高 級語言語句的功能,翻譯過程僅需要進行變量名到地址的轉化,而無需再將語 句拆分為多條指令,簡化了高級語言到指令集的映射,便於編譯器設計。此外, 指令編碼格式規整,各欄位長度和位置均固定,從而避免了複雜指令的解碼時 間消耗大的缺陷,能夠簡單快速的獲取指令種類和具體的操作數位置。和多端 口存儲器的結合對目標代碼執行時同時獲取指令和數據提供了物理支持。
圖l一指令基本編碼圖。圖2—指令各種尋址方式示意圖。圖3—A二B op C類語句支持實施例存儲空間直接尋址的ADD指令示意圖。 圖4—分支語句支持指令實施例示意圖。 圖5—函數調用支持指令實施例示意圖。 圖6—處理器的多埠存儲器示意圖。
具體實施方式
下面結合附圖和實施例對本發明做進一步說明。本發明實施方式以64位定長指令集的指令格式和指令集中支持高級語言語句的特殊指令為例,但不僅限於此例。圖1所述的64位指令基本編碼方式給出了指令格式。指令長度64位,最 左側包含1位保留位,其後是操作碼欄位,尋址方式描述符欄位,以及地址碼 欄位。操作碼欄位位置固定,長度確定為6位,首位保留,後5位操作碼前3 位編碼區別運算類型,包括加減運算(000),乘除運算(001),邏輯運算(010), 數據傳遞(011),移位(100),轉移(101),調用(110);後2位針對每個類 型劃分具體操作,如加(00)和減(01)。尋址方式描述符欄位位於操作碼後, 給出3個操作數的尋址方式,每個操作數3位,共計9位。地址碼欄位給出3 個操作數的地址,每個操作數16位,共計48位。每個操作數地址碼對應一個 尋址方式描述符,可直接尋址64K存儲空間,也可將後兩個操作數合併,提供 對32位立即數的支持。最基本指令的格式為0Pr,dl,d0。語義是dO和dl進 行操作0P後,結果放入單元r中。其中d0、 dl、 r為16位地址,d0、 dl也可 以是16位二進位數。圖2給出了由所述指令集在各種尋址方式下的編碼示意圖。尋址方式包括 32位立即數尋址(000), 16位立即數尋址(001),存儲空間直接尋址(010), 存儲空間間接尋址(011),寄存器間接尋址(100),寄存器直接尋址(101), 寄存器相對尋址(110);剩餘的一種編碼可用來擴展尋址方式。每個操作數對 應的3位的尋址方式描述符區分所有尋址方式,目的操作數不能使用立即數尋 址方式,根據指令的不同,尋址方式有所限制。與寄存器相關的尋址方式通過 處理器中輔助訪問存儲器的寄存器來進行操作。寄存器在不同的尋址方式下提 供操作數或者是操作數在存儲器中的地址。當尋址方式描述符欄位為xxx000000 時,後兩個操作數的地址碼聯合提供一個32位立即數,指令演變為OPr,d。其 中,原始的dl提供立即數的高16位,d0提供立即數的低16位。圖3給出了支持高級語言A=B op C類語句的ADD指令編碼方式和指令操作 過程。採用存儲空間直接尋址方式能夠保證單周期完成操作,以此為例來說明。 在ADD指令中,三個操作數可以採用除立即數外的所有尋址方式。當三個操作 數都採用存儲空間直接尋址方式時,解碼後可得到三個操作數的物理地址,並 可根據程序計數器得到下一條將要執行的指令的地址。在多埠存儲器的支持 下,通過獨立的數據線同時獲取dO和dl,並同時讀取下一條指令,由ALU部件對取數階段獲取的d0和dl完成運算後直接寫回r。高級語言的A二B+C語句可以 直接映射為ADD r,dl,d0。其中,r,dl,dO分別對應著A,B,C的地址。單條指令 就可以完成語句的功能。在該指令集實施例中,非鏈式操作的支持不局限於ADD 指令,SUB, AND, 0R, N0R指令都對高級語言A二B op C類語句提供直接支持。圖4給出了支持分支語句的JPC c, db d-,指令的編碼方式和指令操作過程。 通過控制轉移地址山,t的值可實現大於等於、小於等於、不等於三種條件轉移。 通過編譯器的翻譯,將高級語言的if語句判斷條件放置於c的位置,轉移成功 和不成功的目標語句地址放到山,夂的位置;將高級語言的switch case語句拆 解為多個三分支,switch的選擇條件放置於c的位置,每個case入口分別對應 d,,d-,給出的目標指令以及該JPC指令的下一條指令,單條指令可以提供對一個 三分支操作的支持。即根據r的計算結果進行轉移,為-1轉移到d-,給出的地址, 為l轉移到d,給出的地址,為0順序執行。當c為立即數時,可以實現無條件 轉移,對應著高級語言if語句判斷條件為永真或永假的情況。圖5給出了支持函數調用語句的call指令編碼方式。call指令的第一操作 數給出被調用函數初始地址,第二操作數給出調用參數塊地址,包括堆棧、實 參、可包含用於返回的參數即調用函數的信息等,具體結構由編譯器針對用戶 程序生成,不同的函數參數塊內容和具體排布方式可存在差異。第一操作數給 出的地址直接賦給指令計數器,作為下一條即將執行的指令地址;第二操作數 的內容負責傳遞參數和保存返回地址。無需額外指令保存現場。圖6給出處理器的多埠存儲器支持。指令集面向的體系結構採用統一的 指令和數據存儲,但是採用獨立的指令和數據總線,和哈佛結構與傳統的存儲 結構均不相同。在程序執行過程中,即將執行的指令的地址由程序計數器給出, 或者通過當前指令提供的目標地址給出;當前指令所需要的數據通過指令的地 址碼部分結合尋址方式描述符給出。多埠存儲器為指令和需要獲取及存儲的 操作數都提供獨立的地址線和數據線,可以同時進行傳送,達到並行取指和取 多個操作數的效果,提高指令執行效率。
權利要求
1.一種支持高級語言部分語句功能的處理器指令集,其特徵在於單條指令完成高級語言部分語句的功能;結合定長與顯地址的特定編碼格式;與無寄存器文件的處理器結構結合實現指令集功能。
2. 如權利要求1所述的處理器指令集,其特徵在於所述高級語言部分語句支持包括A:B叩C類語句,>^語言及〔++的選擇語句、開關語句和函數調 用語句。
3. 如權利要求2所述的處理器指令集,其特徵在於所述A二B叩C類型的 語句支持由單條指令提供三個操作數地址;根據地址從存儲器中同時讀取兩個 源操作數,並將計算結果寫回目標在存儲器中的位置。
4. 如權利要求2所述的處理器指令集,其特徵在於所述選擇語句、開關 語句支持由單條指令提供判斷依據和兩個轉移目標地址;根據第一操作數的計 算結果進行轉移,為1轉移到第二操作數給出的地址,為-l轉移到第三操作數 給出的地址,為0順序執行。
5. 如權利要求2所述的處理器指令集,其特徵在於所述函數調用語句支 持由單條指令完成函數調用;第一操作數給出被調用函數初始地址,第二操作數給出調用參數塊地址,包括堆棧、實參、可包含用於返回的參數即調用函數的信息等,具體結構由應用程式定義;無需額外指令保存現場。
6. 如權利要求1所述的處理器指令集,其特徵在於所述編碼格式中,指 令由固定位置且固定長度的保留位和操作碼,尋址方式描述符,地址碼組成; 每條指令的三個操作數的尋址方式均由獨立的欄位給出;每個尋址方式描述符 對應一個地址碼,指定32位立即數尋址,16位立即數尋址,直接尋址,間接尋 址,寄存器直接尋址,寄存器間接尋址或寄存器相對尋址等多種尋址方式。
7. 如權利要求1所述的處理器指令集,其特徵在於所述與無寄存器文件 處理器結構的結合,即指令和數據均存儲在多埠存儲器中,該多埠存儲器 對指令和數據提供獨立的訪問通路,處理器直接從存儲器同時獲取指令和三個 操作數;除了輔助訪問存儲器的寄存器,沒有累加器和通用寄存器。
全文摘要
本發明涉及一種支持高級語言部分語句功能的處理器指令集,單條指令完成高級語言的部分語句功能;結合定長與顯地址的特定編碼格式;並與無寄存器文件的處理器結構相結合。所述的高級語言支持包括A=B op C類型的語句,Java語言及C++的選擇語句、開關語句和函數調用語句。本發明還提供了該特定指令集的編碼方式,由固定位置且固定長度的保留位和操作碼,尋址方式描述符,地址碼組成。指令和數據均存儲在多埠存儲器中,該多埠存儲器對指令和數據提供獨立的訪問通路,處理器直接從存儲器同時獲取指令和三個操作數。本發明的指令集貼近高級語言,便於編譯器設計,指令格式規整,解碼快速簡單。
文檔編號G06F9/45GK101246435SQ20081010086
公開日2008年8月20日 申請日期2008年2月25日 優先權日2008年2月25日
發明者劉彩霞, 琦 左, 峰 石, 薛立成 申請人:北京理工大學