国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種超標量微處理器中實現(xiàn)存儲指令流水提交方法

      文檔序號:6635662閱讀:649來源:國知局
      一種超標量微處理器中實現(xiàn)存儲指令流水提交方法
      【專利摘要】本發(fā)明涉及一種超標量微處理器中實現(xiàn)存儲指令流水提交方法,本方法利用三類緩沖的自排序功能,通過改進三類緩沖間的接口協(xié)議,弱化存儲指令的執(zhí)行條件,加快存儲指令的提交速度。通過恰當配置每個時鐘周期提交的指令數量,以及每個時鐘周期寫一級數據緩存的存儲指令數量,在執(zhí)行連續(xù)的存儲指令序列時,在存儲地址命中一級數據緩存且具有可寫權限的條件下,可實現(xiàn)存儲指令流水提交功能,顯著提高微處理器性能。
      【專利說明】一種超標量微處理器中實現(xiàn)存儲指令流水提交方法

      【技術領域】
      [0001] 本發(fā)明涉及超標量微處理器的訪存指令完成和提交邏輯,特別是涉及一種超標量 微處理器中實現(xiàn)存儲指令流水提交方法。

      【背景技術】
      [0002] 當前的超標量微處理器都支持亂序發(fā)射、亂序執(zhí)行、推測執(zhí)行和順序提交,如 圖1所示,指令流水線通常包括取指(Fetch)、譯碼(Decode)、寄存器重命名(Map)、發(fā)射 (Issue)、執(zhí)行(Execute)、提交(Retire)等幾個基本的流水線站臺。指令執(zhí)行完成后按程 序順序進行提交是基本設計要求,因此當前的超標量微處理器都設置有一個全指令重排序 緩沖(ROB),該緩沖是一個帶頭尾指針的循環(huán)隊列,所有進入指令流水線的指令按程序順序 登記到ROB的隊尾。指令執(zhí)行以后,將異常或完成信息登記在各自對應的ROB條目中,登記 的順序與程序順序無關。每個時鐘周期,檢查ROB隊頭,如果隊頭第一條指令發(fā)生異常,則 撤銷該指令對處理器狀態(tài)產生的影響,并進入異常處理流程;如果隊頭連續(xù)的一條或多條 指令執(zhí)行完成并且沒有發(fā)生異常,則接收指令對處理器狀態(tài)產生的影響,簡稱指令提交。
      [0003] 為了描述方便,此處按程序的順序對指令進行年齡排序,排在程序前面的指令稱 為年老的指令,排在程序后面的指令稱為年輕的指令,所有進入指令流水線但還沒有提交 的指令稱為飛行的指令。
      [0004] ROB用于存放所有飛行指令的信息,包括取指地址和執(zhí)行結果等。將指令在ROB中 分配的條目號高位擴展一位后,作為指令的年齡序號(Inum號),該序號是指令在飛行期間 的唯一標識,可用于指令間的年齡排序,排序方法是:兩條指令的Inum號高位相同時,低位 值越大的指令越年輕;高位不同時,低位值越小的指令則越年輕。
      [0005] 每個時鐘周期里提交的指令數量會最終制約處理器單位時間內執(zhí)行的指令數量 (IPC),對處理器性能產生至關重要的影響。在精簡指令集系統(tǒng)(RISC)中,指令大致可分為 兩類,一類是運算指令,這類指令的操作數都在處理器內部的寄存器中,其執(zhí)行所花費的時 鐘周期是固定的;另一類是訪存指令,這類指令所訪問的數據可能在處理器內部不同緩存 (Cache)中,也可能在外部主存中,其執(zhí)行所花費的時鐘周期是不固定的,有的需要幾個時 鐘周期,有的可能需要上百個時鐘周期。當訪存指令到達ROB頭部,但還未執(zhí)行完成時,會 長時間無法提交。因此,要提高指令的提交帶寬,關鍵就是要解決訪存指令的提交效率。
      [0006] 訪存指令分為裝入指令(Load)和存儲指令(Store)兩種,其中Load指令從一級 數據Cache(DCache)或主存中讀出數據并寫入寄存器后,就表示執(zhí)行完成可以提交。由于 超標量微處理器支持亂序執(zhí)行和推測執(zhí)行,為保證程序執(zhí)行的正確性,Store指令只能在確 認是當前指令序列中最年老的指令且無異常時,才能將數據寫入DCache或發(fā)向核外主存, 然后才能提交。由此可見,Store指令的寫DCache操作依賴于前一條指令的提交時刻,即 使在命中一級數據Cache且具有可寫權限的情況下,Store指令也無法與比它年老的指令 一起提交,因此Store指令的提交速度非常慢。
      [0007] 為了控制訪存指令的執(zhí)行和提交,當前的超標量處理器中通常會在訪存部件設置 裝入指令重排序緩沖(LQ)和存儲指令重排序緩沖(SQ)。LQ用于存放所有飛行的Load類 指令信息,包括Inum號、訪存地址、目標寄存器號和執(zhí)行結果等;SQ用于存放所有飛行的 Store類指令信息,包括的Inum號、訪存地址、存儲數據和執(zhí)行結果等。


      【發(fā)明內容】

      [0008] 傳統(tǒng)的訪存指令提交流程如下,ROB與LQ/SQ的接口信號示意圖如圖2,具體操作 如下:
      [0009] 1)對于Load指令:訪存部件從Cache或主存中讀出數據寫入寄存器文件后,向 ROB報完成,ROB收到完成信號后,按順序提交指令,通知訪存部件刪除LQ中的條目;
      [0010] 2)對于Store指令:ROB先通知訪存部件該指令為ROB頭部第一條指令,允許 Store指令執(zhí)行,訪存部件在命中DCache且獲得可寫權限后,啟動寫DCache操作,同時向 ROB報完成,ROB收到完成信號后,按順序提交指令,通知訪存部件刪除SQ中的條目。
      [0011] 本發(fā)明的發(fā)明人發(fā)現(xiàn)在上述流程中,Load指令的執(zhí)行不依賴其它指令的狀態(tài),但 LQ條目的釋放依賴于本條Load指令提交的時刻。上述特性不影響Load指令的提交速度, 但影響LQ條目的釋放速度,在Load指令密集的情況下,可能導致指令流水線因 LQ隊列滿 而阻塞,從而影響處理器性能。
      [0012] Store指令的執(zhí)行依賴于前一條指令提交的時刻,而SQ條目的釋放又依賴于本條 Store指令提交的時刻。上述特性既影響Store指令的提交速度,又影響SQ條目的釋放速 度,因此對處理器性能影響很大。舉例如下:
      [0013] 考慮到真實芯片中的傳輸延遲,假設ROB與訪存部件之間的信號傳送需花費一個 時鐘周期,則從ROB頭指針更新到一條存儲指令提交的操作節(jié)拍如下:
      [0014] 1)時鐘周期0 :R0B的頭指針更新,指向一條Store指令;
      [0015] 2)時鐘周期I :R0B通知SQ該Store指令已是當前指令序列中最年老的指令,允 許執(zhí)行與操作;
      [0016] 3)時鐘周期2 :SQ在條目中標記該Store指令可執(zhí)行,理想情況下,當拍檢查到命 中DCache且具有可寫權限,準備寫DCache ;
      [0017] 4)時鐘周期3 :SQ執(zhí)行寫DCache操作,并向ROB報完成;
      [0018] 5)時鐘周期4 :R0B檢測到Store指令已執(zhí)行完成,提交該指令;
      [0019] 6)時鐘周期5 :R0B通知SQ該Store指令已提交;
      [0020] 7)時鐘周期6 :對應的SQ條目釋放。
      [0021] 由此可見,一條Store指令從到達ROB頭部到提交最快需要5個時鐘周期。如下 表1所示,當指令流中出現(xiàn)連續(xù)的Store指令時,即使在理想情況下(命中DCache,且獲得 可寫權限),也無法實現(xiàn)流水提交,只能每5個時鐘周期提交一條指令,嚴重影響處理器的 IPC。
      [0022]

      【權利要求】
      1. 一種超標量微處理器中實現(xiàn)存儲指令流水提交方法,其特征在于,包括以下步驟: (1) 全指令重排序緩沖從當前頭指針開始,檢查頭部n條指令的狀態(tài),選出當前允許提 交的最年輕的指令的年齡序號發(fā)送給訪存部件; (2) 訪存部件收到所述年齡序號后,查詢裝入指令重排序緩沖,將裝入指令重排序緩沖 中與所述年齡序號相同的裝入指令,以及比所述年齡序號更年老的裝入指令都標記為可提 交狀態(tài),一旦可提交狀態(tài)的裝入指令正常執(zhí)行完成,向全指令重排序緩沖報告完成,同時刪 除可提交狀態(tài)的裝入指令對應的裝入指令重排序緩沖條目; (3) 全指令重排序緩沖收到指令的完成信號后,登記到對應的條目中,全指令重排序緩 沖從當前頭指針開始,檢查頭部n條指令的狀態(tài),如果頭h條指令都無異常,且執(zhí)行完成,則 h條指令在一個時鐘周期里一起提交,并移動全指令重排序緩沖的頭指針,其中,n > h > 1。
      2. 根據權利要求1所述的超標量微處理器中實現(xiàn)存儲指令流水提交方法,其特征在 于,所述步驟(2)中訪存部件收到所述年齡序號后還同時查詢存儲指令重排序緩沖,將存 儲指令重排序緩沖中與所述年齡序號相同的存儲指令,以及比所述年齡序號更年老的存儲 指令都標記為可提交狀態(tài);如果存儲指令重排序緩沖隊頭的存儲指令命中一級數據緩存, 且獲得可寫權限,并且被標記為可提交狀態(tài),就向全指令重排序緩沖報告完成,同時準備將 數據寫入一級數據緩存,等數據寫入一級數據緩存后刪除該指令對應的存儲指令重排序緩 沖條目。
      3. 根據權利要求1所述的超標量微處理器中實現(xiàn)存儲指令流水提交方法,其特征在 于,所述步驟(1)中選擇允許提交的最年輕的指令的年齡序號的原則是:如果被選的指令 是運算指令,且該指令以及年老的指令都是已完成且無異常的指令;如果被選的指令是裝 入指令,則年老的指令是已完成無異常的運算指令或無異常的裝入指令;如果被選的指令 是存儲指令,則年老的指令是已完成無異常的運算指令和裝入指令,或是無異常的存儲指 令。
      4. 根據權利要求1所述的超標量微處理器中實現(xiàn)存儲指令流水提交方法,其特征在 于,所述步驟(2)中訪存部件允許一個時鐘周期里刪除m個裝入指令重排序緩沖條目。
      5. 根據權利要求2所述的超標量微處理器中實現(xiàn)存儲指令流水提交方法,其特征在 于,所述步驟(2)中訪存部件允許一個時鐘周期里將g條存儲指令的數據寫入一級數據緩 存,并刪除g個存儲指令重排序緩沖條目。
      【文檔編號】G06F9/30GK104391680SQ201410685360
      【公開日】2015年3月4日 申請日期:2014年11月25日 優(yōu)先權日:2014年11月25日
      【發(fā)明者】尹飛, 胡向東, 翁志強, 路冬冬 申請人:上海高性能集成電路設計中心
      網友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1