使用分支取代的仿真處理器執行的製作方法
2023-09-16 15:38:50 1
專利名稱:使用分支取代的仿真處理器執行的製作方法
技術領域:
本發明一般涉及處理器仿真,並且具體涉及由分支取代(override)邏輯解析分支 指令的仿真方法學。
背景技術:
處理器設計的仿真在本領域是公知的。實際上,大量仿真是新處理器設計的工藝 所必需的。仿真涉及通過量化目標處理器組件功能單元的特性並將那些特性相互相關以 便出現的模型(即,有關特性之和)提供實際處理器行為的幾乎相同表示而為目標處理器建 模。仿真的一個已知方法提供系統組件的硬體準確模型,如硬體描述語言(HDL)構造 或合成後的其門級實現,並且仿真組件之間傳遞的實際裝置狀態和信號。這些仿真雖然高 度準確,但速度較慢,計算要求高,並且僅在硬體準確模型已開發時才能夠在設計工藝中表 現良好。相應地,它們不適用於在闡明架構權衡、檢測基本性能標準及諸如此類中有用的早 期仿真。仿真的一種更有效方法提供硬體功能單元的更高端周期準確模型,並且經面向事 務的消息傳遞系統為其交互建模。消息傳遞系統通過將每個時鐘周期分成「更新」階段和 「通信」階段而仿真實時執行。周期準確的單元功能在適當的更新階段中被仿真以便仿真實 際功能單元行為。組件間信令分配到通信階段以便實現周期準確的系統執行。仿真的準確 度取決於功能單元模型準確地反映實際單元功能和準確地展現組件間信令的程度。甚至諸 如處理器等複雜系統的高準確功能單元模型在本領域是已知的,並且產生了在許多應用中 以高準確度匹配現實硬體結果的仿真。然而,功能單元準確度只是獲得諸如處理器等複雜系統的高保真仿真的挑戰的一 部分。有意義的仿真另外要求對處理器上的活動準確建模,如指令執行順序。在許多應用 中,可通過在處理器模塊上簡單執行相關程序而對處理器活動準確建模。然而,這並不是始 終可能的,特別是在對實時處理器系統建模時。例如,輸入/輸出行為(I/O)可以是要探究 的關鍵領域,但實際I/O環境十分複雜,使得準確的I/O模型的開發是不可能或不可行的。 這是關於諸如移動通信裝置等許多面向通信的系統的情況。處理器仿真準確度的一個關鍵方面是指令執行順序。所有現實程序包括條件分支 指令,其評估在運行時之前是未知的。實際上,在許多情況下,在處理器流水線(pipeline) 中深處的執行階段中評估指令前,不進行分支評估。為防止流水線暫停(stall),即在評估 分支條件前中止執行,現代處理器採用精密的分支預測技術。在將條件分支指令解碼時,基 於過去分支行為和/或其它度量,預測指令的評估,並且基於預測繼續指令獲取。也就是 說,如果預測為要取分支,則從分支目標地址(可先驗已知或者可動態計算得出)獲取指令。 如果預測為不取分支,則指令獲取繼續按順序進行(在分支指令地址後的地址)。未正確預 測的分支能夠要求流水線刷新以清除未正確獲取的指令的管道(pipe)以及要求獲取正確 指令時的暫停,從而不利地影響了執行速度和功耗。準確的分支預測因此是處理器性能的一個重要方面,並且因而是處理器仿真中非常關注的一個領域。然而,確定許多分支條件的 解析的I/O環境可能太複雜而無法在仿真中準確地建模。
發明內容
—種處理器仿真環境包括操作以根據目標處理器的特性來仿真處理器指令的執 行的處理器執行模型和分支取代邏輯。在處理器執行模型將分支指令解碼時,它請求來自 分支取代邏輯的分支指引。分支取代邏輯提供解析分支評估的分支指引以響應請求。請求 和分支指引可採用多種形式。在一個實施例中,請求包括正在仿真的分支指令的地址,並且 可選地包括預測的分支目標地址。分支取代邏輯可通過使用分支指令地址,將與目標處理 器兼容的處理器上執行的指令的執行追蹤(execution trace)編排索引。分支指引可包括 取代分支目標地址,該地址可從指令追蹤獲得或者由分支取代邏輯以其它方式計算得出。 以此方式,在未對複雜I/O建模的仿真環境中可仿真準確的程序執行順序。
圖1是處理器仿真環境的功能框圖。圖2是仿真處理器執行的方法的流程圖。
具體實施例方式圖1示出包括處理器執行模型12的處理器仿真環境10。處理器執行模型12根據 目標處理器的特性來仿真指令的執行。目標處理器可以是現有處理器,或者更可能是在開 發的新處理器。處理器執行模型12可包括目標處理器內一個或多個功能單元的硬體準確 模型,如指令單元(IU)、浮點單元(FPU)、存儲器管理單元(MMU)或諸如此類。備選或附加 的是,一個或多個功能單元可由周期準確的功能單元來建模,零仿真時間數據和/或參數 在功能單元模型之間傳遞。通常,處理器執行模型12可包括本領域已知的任何處理器仿真 模型。 處理器執行模型12通過執行從指令庫14檢索的指令,仿真目標處理器的操作。指 令庫14本身可包括存儲器功能的仿真模型,如指令高速緩存(I高速緩存)。備選的是,指令 庫14可簡單地包括能夠加載到存儲器中並由目標處理器執行的指令的有序清單(如在編 譯器/連結器產生的對象模型中)。在一個實施例中,處理器執行模型12通過提供指令地 址(IA) 16,從指令庫14獲取一個或多個指令。指令庫14又提供一個或多個對應指令18 到處理器執行模型12。在各種實施例中,處理器仿真環境10可如所要求的或期望的,另外包括存儲器 20、輸入/輸出功能(I/O) M及諸如此類的仿真模型。例如,存儲器模型20可實現為一個 或多個高速緩存。I/O模型M可模擬UART、並行埠、USB接口或其它I/O功能。處理器 仿真環境10可另外包括其它仿真模型,或到諸如圖形處理器、加密引擎、數據壓縮引擎或 諸如此類(未示出)等另一電路的接口的模型。在一些情況下,處理器仿真環境10不能提供足夠精密的I/O模型以確保處理器執 行模型12的有意義仿真。例如,目標處理器可能部署在無線通信系統移動終端中。帶有無 線通信系統的移動終端(及其處理器)的複雜、動態交互不能得到準確建模。然而,部署在移動終端中時的目標處理器的性能是關鍵的,並且開發人員必須能夠仿真在該環境中其操作 的許多方面。具體而言,直接和深刻影響其性能的目標處理器的操作的一方面是程序執行路徑 -即,分支指令的動態解析。根據本發明的一個或多個實施例,通過分支取代邏輯26在處 理器執行模型12上實行已知或期望的分支指令行為。在處理器執行模型12遇到條件分支 指令時,分支取代邏輯26從處理器執行模型12接收對分支指引的請求28。作為響應,分支 取代邏輯沈提供分支指引30,向處理器執行模型12指示分支評估的解析(即,取或不取)。分支取代邏輯沈可以在幾種方式中得到分支指引30。例如,它可檢查關注的I/ 0條件下(如在參與無線通信時)不同處理器(如目標處理器的以前版本)上實際執行的存儲 在執行追蹤32中的指令。備選的是,分支取代邏輯沈可根據各種算法來計算分支指引30, 例如隨機、取或不取分支評估的預定概率分布(基於代碼的分析和環境的認知、通過I/O環 境和程序的動態分析)或其它方案。以此方式,處理器執行模型12的有意義仿真和分析是 可能的,甚至在I/O環境不能準確地建模的情況下。來自處理器執行模型12的分支指引請求觀和來自分支取代邏輯沈的分支指引 30可採用多種形式。例如,在對概率測試適當的一個實施例中,處理器執行模型12可簡單 地斷言信號為請求觀,並且接收單個比特作為分支指引30 -例如,1=取,以及0=不取。這 種情況下,分支取代邏輯26根據某一概率分布來控制分支指令的分支解析,而與正在執行 的代碼內的每個單獨指令或其功能無關。在另一個實施例中,來自處理器執行模型12的分支指引請求觀可採用分支指令 地址(BIA)的形式-即,對其正在仿真執行的分支指令的地址。在此實施例中,分支取代 邏輯26可使用BIA (及可選擇地使用偏移)為執行追蹤32編排索引以發現如前面執行的 對應分支指令的實際分支解析。在此實施例中,來自分支取代邏輯沈的分支指引30可採 用取代分支目標地址(OBTA)的形式-該地址即處理器執行模型12應從其開始執行新指 令的地址。在特別適合仿真處理器執行模型12內分支預測邏輯的仍有的另一個實施例中, 來自處理器執行模型12的分支指引請求觀可包括BIA和預測分支目標地址(BTA)兩者。 在此實施例中,來自分支取代邏輯沈的分支指引30可包括指示分支預測的準確度的單個 比特-例如,1=正確預測,以及0=錯誤預測。分支取代邏輯沈可計算分支預測的準確度, 或者可通過使用BIA與執行追蹤32中對應分支指令的實際分支解析進行比較來查明它。備 選的是,分支取代邏輯26可提供OBTA形式中的分支指引30。OBTA將是用於不取分支指引 30的適當增大的BIA,或用於取分支指引30的BTA。注意,BTA無需匹配如處理器執行模型 12計算得出的預測取的BTA -例如,分支取代邏輯沈能夠通過提供適當0ΒΤΑ,在程序執行 路徑中強制中斷或其它更改。圖2示出仿真處理器執行的方法100。從框102開始,方法以獲取一個或多個指令 開始(框104)。如本領域中已知的,處理器執行模型12可按順序獲取指令,或者它可成組獲 取指令,如I-高速緩存行。對於每個獲取的指令,處理器執行模型12將指令解碼(框105)。 如果指令不是分支指令(框106),則處理器執行模型12仿真指令的執行(框108),例如通過 將指令加載到執行流水線的模型中。在處理器執行模型12將分支指令解碼(框106)時,它 向分支取代邏輯26發出對分支指引的請求觀(框110)。處理器執行模型12隨後從分支取代邏輯沈接收分支指引30 (框112)。處理器執行模型12隨後通過獲取和執行分支指 引30確定的地址處的指令,仿真分支指令的執行(框114)。請求觀和分支指引30可包括仿真的電信號,其中,處理器執行模型12(或至少其 接口的模型)包括硬體準確的仿真模型,如硬體描述語言(HDL)模型、門級模型功能模型或 諸如此類。備選的是,在處理器執行模型12包括周期準確的功能模型的情況下,請求觀和 分支指引30可包括根據為處理器仿真環境10定義的面向事務的消息傳遞系統而在處理器 執行模型12與分支取代邏輯沈之間傳遞的零仿真時間消息。本領域技術人員可容易為任 何特定仿真環境實現適當的請求觀和分支指引30信令。通過分支取代邏輯沈提供分支指引30允許處理器仿真環境10通過最少的I/O 建模或模擬來仿真處理器執行模型12。處理器執行模型12可像目標處理器一樣仿真指令, 僅在分支確定點有介入。在期望高程度的仿真準確度時,這特別重要。另外,通過分離分支 取代邏輯沈和處理器執行模型12,可根據特定仿真所期望的或要求的來實現多種分支取 代方案。當然,在不脫離本發明基本特性的情況下,本發明可以不同於本文具體所述那些 方式的其它方式來實現。所示實施例在所有方面均要視為說明性而不是限制性的,並且落 在隨附權利要求的意義和等同範圍內的所有更改旨在涵蓋於其中。
權利要求
1.一種仿真處理器執行的方法,包括解碼處理器指令以確定所述指令是否是分支指令;以及通過以下步驟來仿真分支指令的執行從分支取代邏輯請求分支指弓I,從分支取代邏輯接收響應所述請求的分支指引;以及根據來自所述分支取代邏輯的所述分支指引,仿真所述分支指令的執行。
2.如權利要求1所述的方法,其中從分支取代邏輯請求分支指引包括提供所述分支 指令地址到所述取代邏輯。
3.如權利要求2所述的方法,其中從分支取代邏輯請求分支指引還包括提供分支目 標地址到所述取代邏輯。
4.如權利要求1所述的方法,其中從分支取代邏輯接收的所述分支指引包括取代分 支目標地址。
5.如權利要求5所述的方法,其中仿真所述分支處理器指令的執行以響應來自所述 分支取代邏輯的所述分支指引包括仿真在所述取代分支目標地址開始的一個或多個指令 的執行。
6.如權利要求1所述的方法,其中從分支取代邏輯接收的所述分支指引包括比特。
7.—種處理器仿真環境,包括處理器執行模型,操作以根據目標處理器的特性來仿真處理器指令的執行,並且還操 作以在解碼分支指令時請求分支指引,接收響應所述請求的分支指引,並且根據所述分支 指引來仿真所述分支指令的執行;以及分支取代邏輯,操作以接收來自所述處理器執行模型的分支指引請求,並提供分支指 引以響應所述請求。
8.如權利要求7所述的處理器仿真環境,還包括所述分支取代邏輯可訪問的指令執 行追蹤,所述指令執行追蹤包括由與所述目標處理器兼容的處理器以前執行的指令。
9.如權利要求7所述的處理器仿真環境,還包括指令庫,所述處理器執行模型從所述 指令庫獲取指令。
10.如權利要求7所述的處理器仿真環境,其中所述指令庫對指令高速緩存建模。
11.如權利要求7所述的處理器仿真環境,其中所述分支指引請求包括正在仿真的所 述分支指令的地址。
12.如權利要求11所述的處理器仿真環境,其中所述分支指引請求還包括分支目標 地址。
13.如權利要求7所述的處理器仿真環境,其中所述分支指引包括取代分支目標地址。
14.如權利要求13所述的處理器仿真環境,其中所述處理器執行模型操作以通過仿 真在所述取代分支目標地址開始的一個或多個指令的執行來根據所述分支指引仿真所述 分支指令的執行。
15.如權利要求7所述的處理器仿真環境,其中所述分支指引包括比特。
16.一種處理器執行模型,包括功能單元模型,所述功能單元模型共同操作以根據目 標處理器的特性來仿真處理器指令的執行,並且還操作以在解碼分支指令時請求分支指引, 接收響應所述請求的分支指引,以及 根據所述分支指引來仿真所述分支指令的執行。
17.如權利要求16所述的處理器執行模型,其中所述分支指引包括取代分支目標地 址,以及其中所述功能單元模型共同操作以通過仿真在所述取代分支目標地址開始的一個 或多個指令的執行來根據所述分支指引仿真所述分支指令的執行。
全文摘要
一種處理器仿真環境包括操作以根據目標處理器的特性來仿真處理器指令的執行的處理器執行模型和分支取代邏輯。在處理器執行模型將分支指令解碼時,它請求來自分支取代邏輯的分支指引。分支取代邏輯提供解析分支評估的分支指引以響應請求。請求可包括分支指令地址。分支取代邏輯可通過使用分支指令地址,將與目標處理器兼容的處理器上執行的指令的執行追蹤編排索引。分支指引可包括取代分支目標地址,該地址可從指令追蹤獲得或者由分支取代邏輯以其它方式計算得出。以此方式,在未對複雜I/O建模的仿真環境中可仿真準確的程序執行順序。
文檔編號G06F17/50GK102144232SQ200980134457
公開日2011年8月3日 申請日期2009年9月4日 優先權日2008年9月4日
發明者A·D·沃克 申請人:愛立信電話股份有限公司