国产在线 | 中文,在线视频夫妻内射,国产精品视频超级碰,性欧美大胆免费播放

崴泰科技是一家專業(yè)供應BGA返修設備的廠家,產(chǎn)品:BGA拆焊臺,BGA返修臺,BGA植球機,BGA自動除錫機和回焊爐等

聯(lián)系電話:18816818769  
bga返修設備供應商-崴泰科技

Powerpc處理器開發(fā)出穩(wěn)定和易用可靠的仿真調(diào)試平臺

  PowerPC( MPC8270) 處理器是一款易用、穩(wěn)定、可靠的仿真調(diào)試平臺。針對PowerPC體系結構,構建出一套完整的全系統(tǒng)模擬仿真平臺,并重點闡述了ELF解析、指令集解析、虛擬 MMU 和 時鐘中斷模塊的實現(xiàn)方法。

  嵌入式領域不斷增大的應用需求,而傳統(tǒng)的嵌入式軟件往往需要等待硬件平臺制作完成后才可以進行調(diào)試、開發(fā),這極大的延遲了產(chǎn)品的研發(fā)周期,并且在實際硬件平臺上調(diào)試軟件也具有一定難度。所以,基于軟件環(huán)境開發(fā)一套可以仿真硬件平臺的系統(tǒng)( 即虛擬機)是十分必要的。虛擬機( Virtual Machine) 系統(tǒng)實際上是真實硬件平臺的一個軟件抽象。通過這里我們就可以看出BGA芯片返修行業(yè)又將迎來一次新的洗禮,對于BGA返修臺的制造要求更高了。

  Powerpc處理器開發(fā)出穩(wěn)定和易用可靠的仿真調(diào)試平臺

  它以一個普通的應用程 序運行在宿主機的操作系統(tǒng)之上,它將目標平臺的 硬件行為抽象為宿主機的軟件行為,從而達到模擬的效果,軟件架構。PowerPC體系結構在嵌入式領域有著廣泛的應用和卓越的表現(xiàn),構建一個針對它的仿真調(diào)試系統(tǒng)是十分必要的。

  所以本文以PowerPC體系結構為仿真目標,在X86體系結構的PC機上構建一個全系統(tǒng)虛擬化調(diào)試平臺。 1、虛擬平臺總體設計 1. 1 平臺整體設計本仿真平臺主要是針對MPC8270這一款高性能、低功耗32 位超標量RISC微處理器。其是Power-QUICC TM II族的一款CPU,使用了E603的核心工作頻率最高可達450MHz,擁有獨立的16k數(shù)據(jù)和程序 cache,以及獨立的 DMMU 和 IMMU。
多接口Powerpc處理器
  擁有多種可定制接口,廣泛應用于網(wǎng)絡交換機和工業(yè)控制模塊中。 虛擬機系統(tǒng)框架圖整個仿真平臺核心功能就是在一臺X86架構的機器上,仿真一個PowerPC平臺,可以如真實的硬件平臺一樣加載運行相應的PowerPC的可執(zhí)行文件,并提供更方便的調(diào)試接口。

  MPC8270 軟件仿真平臺主要分為三層,整體架 構如圖 2 所示: 1) 目標層: 目標 PowerPC 平臺上的運行環(huán)境; 區(qū)進行讀寫操作。已達到調(diào)試的目的。

  PowerPC 體系結構映射單元: 此單元維護了 源體系結構寄存器映射表,主要用于解釋執(zhí)行和維 護 PowerPC 體系結構的各個寄存器在運行時狀態(tài)。

  虛擬化層: 整個系統(tǒng)的核心,即運行在主機 系統(tǒng)的虛擬機進程;平臺工作流程 PowerPC 虛擬調(diào)試平臺首先分析帶有調(diào)試信息 主機層: 實際宿主機的運行環(huán)境。
Powerpc處理器運行環(huán)境
  分析出行號表( 即執(zhí)行指令對應的程 序地址),變量地址以及對應的可執(zhí)行文件。而后 我們將分析好的可執(zhí)行加載進虛擬機中。而后虛 擬機開始執(zhí)行加載進來的可執(zhí)行文件。其內(nèi)部以 一種 busyloop 的方式實現(xiàn),首先檢查是否有外部的 回調(diào)函數(shù),外部可以通過此接口完成與虛擬機的通 信。而后檢查將要執(zhí)行指令是否有斷點,如果有斷 點則暫停運行,控制權交由上層的圖形界面操作。 最后執(zhí)行 interpret 完成取址、譯碼與執(zhí)行。

  

仿真平臺總體結構各個模塊主要功能如下:

  1. 虛擬機總控模塊: 負責整個系統(tǒng)的初始化, 虛擬機的空間申請以及釋放,協(xié)調(diào)各個的消息傳遞。

  2.ELF 文件分析與加載模塊: 分析可執(zhí)行文件 的 ELF 格式,分析出相應的行號,符號信息。識別 相應的數(shù)據(jù)段、代碼段等信息。并加載可執(zhí)行文件 到相應的內(nèi)存區(qū)域。

  3.MMU 仿真模塊: 仿真實際硬件的 DMMU 和 IMMU,分別用于數(shù)據(jù)和指令的地址轉(zhuǎn)換,由虛擬地 址翻譯為物理地址。

  4. 解釋器模塊: 即將相應指令 PPC 指令翻譯 為 x86 指令執(zhí)行的模塊。這里為了達到與真實系統(tǒng) 執(zhí)行完全一致,選取了經(jīng)典的處理器的取址-譯碼- 執(zhí)行循環(huán)。這樣可以保證在任何指令處下斷點都 可以與真實系統(tǒng)的執(zhí)行結果一致。

  5.調(diào)試接口模塊: 主要負責外部與虛擬機的通 信,可以向虛擬系統(tǒng)下斷點、設置監(jiān)視點??梢栽?暫停虛擬機執(zhí)行的狀態(tài)下,對虛擬機的數(shù)據(jù)或程序 圖 3 平臺工作流程 , 7692 科學技術與工程11卷作數(shù),以及一個目的操作數(shù)。
仿真平臺總體結構各個模塊主要功能
  這一指令格式的一些 變種使用部分目標和源寄存器操作數(shù)說明符作為 立即字段或作為擴展的操作碼。Rc 標記是否記錄 狀態(tài)寄存器。

  

仿真平臺模塊實現(xiàn)

  1.指令解釋 PowerPC 做為一款 RISC 處理器,所有指令的編 碼長度都是 32 位。PowerPC 的位編號方式比較特 別: 第 0 位是最重要的位,第 31 位是最不重要的 位。指令首先由一個字段中較高的 6 位進行解碼, 這 6 位被稱為主要操作碼( primary opcode) 。其余 26 位包含的字段分別是操作數(shù)說明、立即( immedi- ate) 操作數(shù)以及擴展的操作碼( opcode) ,而且這些 還可能是保留的位或字段。

  

PowerPC 定義的基本指 令格式有如下幾種:

  1. D-form 指令格式 條件轉(zhuǎn)移指令使用的是這一指令格式。BO 指 令字段指定了條件的類型; BI 指令字段指定了以哪 個 CR 位作為條件; BD 字段用作轉(zhuǎn)移位置。AA 位 指定了轉(zhuǎn)移是絕對轉(zhuǎn)移還是相對轉(zhuǎn)移。LK 位指定 了下一個順序指令的地址是否作為子例程調(diào)用的 返回地址保存在鏈接寄存器中。

  2. D-form 指令格式 這一指令格式提供至多兩個寄存器作為源操作數(shù) 一個立即源,至多兩個寄存器作為目的操作數(shù)。這一指 令格式的一些變種使用部分目標和源寄存器操作數(shù)說 明符作為立即字段或作為擴展的操作碼。

  3.無條件轉(zhuǎn)移指令使用這一指令格式。由于是 無條件的,BD 格式中的 BO 和 BI 字段改變?yōu)榱硗?的轉(zhuǎn)移位置,以構成 LI 指令字段。 同 BD 格式一 樣,這一指令格式也支持 AA 和 LK 位。

  對于一個真實的嵌入式系統(tǒng),我們只需把可執(zhí) 行的二進制文件燒錄進相應的存儲單元即可。我們的虛擬調(diào)試系統(tǒng)為了做到對真實硬件平臺的完 全仿真,我們的執(zhí)行步驟也是遵循硬件執(zhí)行指令的經(jīng)典步驟 : 取址、譯碼、執(zhí)行。

  D-form 指令格式 這一指令格式提供至多兩個寄存器作為源操 作數(shù),至多兩個目的操作數(shù)。這一指令格式的一些 變種使用部分目標和源寄存器操作數(shù)說明符作為 立即字段或作為擴展的操作碼。

  取址: 通過訪問內(nèi)存得到 32 位的指令碼。 譯碼: 譯碼的過程實際上就是找到相應指令

  A-form 對應的處理函數(shù)。我們按照每條指令的 0 至 5 位進 行一次 hash 操作,得到一個處理函數(shù)的入口。如果 此指令還有擴展操作碼或者其他標志位,我們在處 理函數(shù)中通過第二次 hash 找 到最終的函數(shù)入口。 實踐表明,這種譯碼方式比樹形的查找更加迅速。

  這一指令格式提供至多三個寄存器作為源操

  執(zhí)行: 調(diào)用譯碼過程查找到的處理函數(shù)。

  debug_macinfo&. debug _pubtypes: 包含全局 對象和函數(shù)的查找表

  debug_ranges: DIE 的引用地址區(qū)間 7) . debug _ str: 包含. debug _ info 段中使用的符 號表。

  里通過指向函數(shù)的指針以實現(xiàn)對上一層程序的接 口一致。

  2. 2 ELF 文件解析 最為一個調(diào)試系統(tǒng),最基本的功能就是在函數(shù) 中設置斷點,讓虛擬機在執(zhí)行到有斷點的語句時暫 停,為了實現(xiàn)這個功能,調(diào)試系統(tǒng)必須知道高級語 言中的語句與機器代碼地址的映射關系,即行號表 ( line number) ; 并且需要知道各個變量被存儲的地 址,以達到分析執(zhí)行狀態(tài)的目的,這便需要符號信 息。

  這些信息被封裝在 ELF ( Executable and Link- 2. 3 時鐘中斷的實現(xiàn) 時鐘中斷是十分重要的中斷,操作系統(tǒng)的運行 是依賴時鐘中斷,例如任務調(diào)度,以及眾多有超時 的函數(shù)調(diào)用。其相關寄存器是有: DEC 和 TB ( Time Base) 寄存器。

  其中 TB 是一個 64 位寄存器,由 TBL 和 TBU 構成,其中 TBL 表示低 32 位,TBU 表示高 32 位。他在每個時鐘周期后自增 1。而 DEC 寄存器已 TB 寄存器自增的頻率自減。可以通過指令 mfspr 和 able Format ) 格 式 文 件 中。 ELF 文 件 格 式 最 初 由 UNIX 系統(tǒng)實驗室開發(fā),目前已成為 32 位操作系統(tǒng) 環(huán)境下較為通用的可執(zhí)行文件格式。ELF 文件作用 有 2 個:

  其一為構建程序,主要體現(xiàn)在連接過程中, 這與我們的調(diào)試系統(tǒng)無關。這里主要分析的是用 于運行程序的 ELF 文件,其大體結構如圖 9 所示。 mtspr 進行讀寫,當向 DEC 中寫入一個大于 0 的值時, 它將在下一個時鐘周期后自減 1。當 DEC 自減至 0 時,便會觸發(fā)時鐘中斷( 除非 MSR〔EE〕將其屏蔽) 。

  由于 MPC8270 擁有亂序執(zhí)行的能力,并且擁有 多條并行的流水線和執(zhí)行單元,由于仿真這些操作 對虛擬機的性能影響極大,并且他對于調(diào)用沒有很 大的好處,我們這里就簡化了時鐘的仿真,DEC 值 時隨著指令的執(zhí)行而減少。我們建立一個數(shù)組區(qū) 來存儲每條指令執(zhí)行的周期,然后在指令執(zhí)行后 DEC 減少相應的值。這樣導致仿真的時間并不十 分精確。但簡單易行,可以滿足實際應用需求。

  MMU 仿真模塊的實現(xiàn) MMU 即 Memory Management Unit 它是 CPU 中用 來管理虛擬存儲器、物理存儲器的控制線路,同時也負 責虛擬地址映射為物理地址,以及提供硬件機制的內(nèi) 存訪問授權,是支持眾多操作系統(tǒng)運行所必須的模塊。 PowerPC 處理器的 MMU 是完全支持段頁式管 理 的,整體結構如圖 10 所示。

  其中段寄存器負責將 有效地址翻譯為內(nèi)部虛擬地址,頁表負責將虛擬地 址 翻譯為物理地址?,F(xiàn)代操作系統(tǒng)一般對分段支 持較弱,主要使用分頁的功能。 MMU 有2 個重要的模塊: 圖 9 ELF 文件結構 段主要描述各個段的信 息,這里我們主要關注. text 段( 執(zhí)行段) ,和一系列包含調(diào)試信息的. de- bug 段( 即 DWARF) 。 在 ELF 文件中所有的調(diào)試信息都以DWARF( De- bugging With Attributed Record Format ) 格式組織起來, DWARF 最基本的描述個體為 DIE( Debugging Information Entry) 。每個 DIE 都有自己的標簽( 包含類型和一系列 屬性) 。

  DIE 以兒子兄弟樹的結構存儲,屬性值可以指向 其他的DIE。其主要包括以下幾項: 1) . debug_frame: 含有調(diào)用棧的信息

  debug _ info: ( DIES) DWARF 包 含 的 核 心 數(shù) 據(jù) 1) TLB( Translation Lookaside Buffer) 頁表旁路 緩沖,其保存了最近所使用的頁表地址翻譯,可以 加速頁表的查詢。

  debug_line: 包含行號信息 4) . debug_loc: 包含宏的描述7694 科學技術與工程11卷圖10MMU 整體結構我們在模擬MMU時也保持其與真實的硬件操 作一致。

  其大體流程首先得到進程 ID,切換到目標上下文環(huán)境,檢查是指令訪存還是數(shù)據(jù)訪存;

  檢查MSR寄存器,查看地址轉(zhuǎn)換功能是否開啟,如果沒開啟則有效地址就是物理地 址,可直接訪問內(nèi)存;

  查看BAT是否命中,如果 命中則可以跳過地址翻譯步驟,直接檢查訪問權限,未命中則繼續(xù);

  執(zhí)行段翻譯,將有限地址翻譯為內(nèi) 部虛擬地址;

  執(zhí)行頁翻譯前首先查看 TLB,看相關 翻譯是否已被緩存;

  執(zhí)行頁翻譯,將虛擬地址翻譯 為物理地址,并更新相關 TLB 信息;

  檢查訪問權 限,如果權限不夠則會引發(fā)相關;

  完成地址翻譯。MMU 仿真流程 2 ) BAT ( Block Address Translation) ,他是由軟 件控制的一個數(shù)組,用來緩存有效的塊地址翻譯。

  通過上文崴泰小編詳細的說明了Powerpc處理器開發(fā)出穩(wěn)定和易用可靠的仿真調(diào)試平臺。Powerpc處理器是一個代表著高水準的仿真調(diào)試平臺。

上一篇: 下一篇:
展開