[發明專利]超長指令字處理器指令發射方法有效
| 申請號: | 201210089913.6 | 申請日: | 2012-03-30 |
| 公開(公告)號: | CN102662637A | 公開(公告)日: | 2012-09-12 |
| 發明(設計)人: | 陳書明;李振濤;李勇;陳吉華;郭陽;劉衡竹;劉祥遠;唐濤;付志剛;劉堯;胡春媚;梁斌;劉必慰;劉蓬俠 | 申請(專利權)人: | 中國人民解放軍國防科學技術大學 |
| 主分類號: | G06F9/38 | 分類號: | G06F9/38 |
| 代理公司: | 國防科技大學專利服務中心 43202 | 代理人: | 郭敏 |
| 地址: | 410073 湖*** | 國省代碼: | 湖南;43 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 超長 指令 字處理 發射 方法 | ||
1.一種超長指令字處理器指令發射方法,其特征在于包括以下步驟:
第一步,改進指令發射部件,使得指令發射部件具有指令ID擴展和ID匹配功能,方法是:
1.1增加一個指令ID擴展邏輯:指令ID擴展邏輯位于取指部件和指令緩沖區之間,它接收取指部件送來的取指包,為取指包中的每條指令擴展一個指令ID,并將擴展之后的取指包送至指令緩沖區;指令ID擴展邏輯為每條指令擴展一個ID字段,用于存儲各條指令的ID;ID字段的位寬為l,l滿足2l≥S,其中S為指令緩沖區的容量,即指令緩沖區中能夠存儲的最大指令條數,S=m×k,m為指令緩沖區的行數,k為指令緩沖區一行可存儲的指令條數;
1.2對指令緩沖區的位寬進行擴充,使指令緩沖區能夠容納下擴展了ID字段的指令;指令緩沖區位于指令ID擴展邏輯和待發射指令選擇邏輯之間,接收并存儲指令ID擴展邏輯送來的取指包,將未發射的指令及其指令ID送至待發射指令選擇邏輯;指令緩沖區按行、列進行組織,一行存儲一個取指包,共有m行,指令緩沖區一行可存儲的指令條數k與取指包的指令條數相等,指令緩沖區分為k列,一列最多有m條指令;
1.3基于ID匹配的方法修改待發射指令選擇邏輯:待發射指令選擇邏輯位于指令緩沖區和指令發射交叉開關之間,接收來自指令緩沖區內未被發射的指令及其指令ID,從中挑選出可供發射的指令送至指令發射交叉開關;待發射指令選擇邏輯由一個ID寄存器邏輯和k個列指令選擇邏輯組成,ID寄存器邏輯的輸出同時送至k個列指令選擇邏輯,k個列指令選擇邏輯之間是并列關系,均是一端與指令緩沖區的一列和ID寄存器邏輯相連,另一端與指令發射交叉開關相連;
1.3.1?ID寄存器邏輯由當前ID寄存器和寄存器維護邏輯組成。當前ID寄存器接收由寄存器維護邏輯計算出的下一可發射指令的ID,鎖存后作為當前ID送至寄存器維護邏輯和k個列指令選擇邏輯;當前ID寄存器的位寬與指令ID字段的寬度相等,當前ID指示當前時鐘節拍可發射指令的ID值;寄存器維護邏輯接收由當前ID寄存器送來的當前ID,計算下一可發射指令的ID送至當前ID寄存器;
1.3.2與指令緩沖區的k列對應,待發射指令選擇邏輯設置k個列指令選擇邏輯;每個列指令選擇邏輯由m個ID比較器、一個m路選擇器和一個m輸入或門組成:m個ID比較器從指令緩沖區接收同一列的m個指令ID,從當前ID寄存器獲得當前ID,將m個指令ID和當前ID分別進行比較,產生m個比較結果S1~Sm,并將S1~Sm分別送至m路選擇器和m輸入或門;m路選擇器以S1~Sm作為選擇信號,從指令緩沖區同一列的m條指令中選擇出至多一條指令作為待發射指令輸出;m輸入或門對S1~Sm執行或運算,生成一個指令有效信號來指示當前列指令選擇邏輯輸出的待發射指令是否有效,為1表示有效,為0表示無效;k個列指令選擇邏輯共產生k條待發射指令和k個指令有效信號送至指令發射交叉開關;
第二步,采用改進后的指令發射部件進行基于指令ID擴展和ID匹配的指令發射,方法是:
2.1指令ID擴展邏輯獲得取指部件從指令存儲器取回的取指包后,按照下述方法為取指包中的每條指令擴展一個ID:
2.1.1將變量ID_Packet初始化為0;
2.1.2為取指包中的每條指令計算一個ID,方法是:
2.1.2.1將變量i初始化為0;
2.1.2.2令指令i為取指包中自首指令開始的第i條指令,按下述方法計算指令i的ID:
1)若指令i為取指包的首指令,則令IDi=ID_Packet,IDi為指令i的ID;
2)若指令i不是取指包的首指令,且指令i與指令i-1位于同一指令包內,令IDi=IDi-1;
3)若指令i不是取指包的首指令,且與指令i-1分屬兩個不同的指令包,則令IDi=(IDi-1+1)modS;
2.1.2.3i=i+1;
2.1.2.4若i<k,則跳轉至2.1.2.2,否則執行2.1.3;
2.1.3更新變量ID_Packet:令指令l為取指包中的最后一條指令,若指令l為其所屬指令包的最后一條指令,則ID_Packet=(ID1+1)modS;
若指令l不為其所屬指令包的最后一條指令,ID_Packet=ID1;
2.1.4將擴展了指令ID的取指包送至指令緩沖區,指令緩沖區執行2.2步;與此同時,如果有新的取指包到達,指令ID擴展邏輯跳轉到第2.1.2步執行,否則指令ID擴展邏輯繼續等待;
2.2指令緩沖區接收并存儲由指令ID擴展邏輯送來的ID擴展之后的取指包,指令緩沖區的一行存儲一個取指包,從第1行開始順序存儲;如果第1行的指令發射完畢,則后序各行指令依次前移;如果指令緩沖區填滿,則停頓取指流水線,直至指令緩沖區出現空槽;指令緩沖區將所有未發射指令及其ID送至待發射指令選擇邏輯,待發射指令選擇邏輯執行2.3步;
2.3待發射指令選擇邏輯運用ID匹配的方法從指令緩沖區中選擇出可供發射的指令,并將其送至指令發射交叉開關,方法如下:
2.3.1更新當前ID寄存器的值:寄存器維護邏輯對當前ID加1并按S取模,計算出下一可發射指令的ID,當前ID寄存器對下一可發射指令的ID進行鎖存,作為新的當前ID;
2.3.2將當前ID寄存器的值當前ID輸出給k個列指令選擇邏輯;
2.3.3k個列指令選擇邏輯并行工作,每個列指令選擇邏輯從指令緩沖區一列的m條指令中選擇出至多一條指令送至指令發射交叉開關,k個列指令選擇邏輯共產生最多k個指令有效信號和k條待發射指令;
2.3.4待發射指令選擇邏輯將k條待發射指令和k個指令有效信號同時送至指令發射交叉開關;
2.4指令發射交叉開關接收待發射指令選擇邏輯送來的k條待發射指令和k個指令有效信號,首先根據指令有效信號確定出有效的待發射指令,然后根據待發射指令攜帶的功能部件編碼信息,通過指令發射交叉開關將有效的待發射指令傳送至相應的功能部件。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于中國人民解放軍國防科學技術大學,未經中國人民解放軍國防科學技術大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201210089913.6/1.html,轉載請聲明來源鉆瓜專利網。





