国产交换精品一区二区三区,和少妇疯狂做爰过程,国产日韩精品欧美一区 ,亚洲综合区小说区激情区

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

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

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

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

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

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

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

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

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

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

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

  

仿真平臺(tái)總體結(jié)構(gòu)各個(gè)模塊主要功能如下:

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

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

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

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

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

  

仿真平臺(tái)模塊實(shí)現(xiàn)

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

  

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  檢查訪問權(quán) 限,如果權(quán)限不夠則會(huì)引發(fā)相關(guān);

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

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

上一篇: 下一篇:
展開