<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 在 Zynq MPSoC 上運行 DOOM 游戲

在 Zynq MPSoC 上運行 DOOM 游戲

作者: 時(shí)間:2016-08-03 來(lái)源:電子產(chǎn)品世界 收藏

  通過(guò)這篇有趣的教程,熟悉運行在賽靈思 UltraScale+ 上的 Xen 管理程序。

本文引用地址:http://dyxdggzs.com/article/201608/294978.htm

  賽靈思和 DornerWorks 的系統軟件團隊在賽靈思的 ® Ultrascale+™ 上啟動(dòng) Xen Project 管理程序時(shí),我們發(fā)現可通過(guò)運行當年叱詫一時(shí)的流行電子游戲 Doom 來(lái)演示和測試系統。

  

 

  神馬?!你不知道 DOOM??(CS 你總知道吧 -__-||)

  如何針對 UltraScale+ 通過(guò) QEMU 在 Xen 上運行 Doom 呢,在詳細介紹具體步驟之前,我們先來(lái)了解什么是管理程序,以及它們如何與 Zynq UltraScale+ MPSoC 上的處理器協(xié)同工作。

  管理程序及其工作原理

  管理程序是一種可虛擬化處理器的計算機程序。運行在虛擬化處理器上的應用程序和操作系統似乎完全擁有系統,但事實(shí)上管理程序負責管理虛擬處理器對物理機資源(例如存儲器和處理內核)的訪(fǎng)問(wèn)。管理程序之所以流行,是因為能實(shí)現設計分區以及系統上運行的獨立軟件元素之間的隔離。

  為了支持虛擬化,物理處理器必須提供一個(gè)供管理程序運行的特殊“模式”。因此,介紹處理器模式有助于理解管理程序如何完成處理器魔法。

  所有處理器都有一些指令,這些指令可操作寄存器中存儲的值,并可讀寫(xiě)存儲器。處理器的模式是指令和寄存器的集合,以及利用指令訪(fǎng)問(wèn)寄存器和存儲器時(shí)要遵守的規則。為了便于解釋?zhuān)覀円酝ㄓ锰幚砥鳛槔齺?lái)介紹,并使用與結構無(wú)關(guān)的術(shù)語(yǔ)。在這個(gè)實(shí)例中,處理器具有特定的寄存器、指令和模式。寄存器包括 RegisterA、RegisterB、RegisterC、UserProgramCounter、Register-Super 和 SuperProgramCounter。指令包括以下內容。

  ADD Register3 Register1 Register2 將 Register1 與 Register2 相加,并把結果存入 Register3,即 Register3 = Register1 + Register2。

  MOVTO Register2 Register1 將 Register1 中地址所指向的存儲器內容移動(dòng)到 Register2。

  MOVFROM Register2 Register1 將 Register1 的內容移動(dòng)到 Register2 中地址所指向的存儲器。

  ENTERSUPER 進(jìn)入處理器的 SUPER 模式。

  EXITSUPER 退出 SUPER 模式并進(jìn)入 USER 模式。

  在 USER 模式下,處理器的指令的功能受到限制。本例中,指令可對除 RegisterSuper 和 SuperProgramCounter 以外的所有寄存器進(jìn)行讀和寫(xiě)操作,處理器可執行除 EXITSUPER 以外的所有指令。

  此外,在 USER 模式下,所有指令只能讀和寫(xiě)一部分存儲器,例如從地址 0x0000_0100 到 0x0FFF_FFFF。在 USER 模式下,如果程序嘗試執行不應該執行的指令,或者訪(fǎng)問(wèn)無(wú)權訪(fǎng)問(wèn)的寄存器或存儲器位置,那么處理器將暫停出錯指令 (offending instruction)。

  SUPER 模式下,處理器的指令可以讀/寫(xiě)上述所有寄存器,包括 RegisterSuper 和 SuperProgramCounter。以上所列的所有指令,包括 EXITSUPER,都可以執行,另外,附加的指令 ENTERHYPER 也可執行(后面詳細介紹該指令)。此外,在 SUPER 模式下,指令可以訪(fǎng)問(wèn)系統中的全部存儲器(從 0x0000_0000 到 0x7FFF_ FFFF)。

  采用帶模式的處理器,使我們可以利用設計分區來(lái)更簡(jiǎn)單地解決軟件工程設計問(wèn)題。以上實(shí)例中,只有一種方法進(jìn)入 SUPER 模式:執行 ENTERSUPER 指令。同樣,只有一種方法退出 SUPER 模式:執行 EXITSUPER。此外,在 USER 模式下程序只能訪(fǎng)問(wèn)機器的部分存儲器。有了這種方案,我們可編寫(xiě)一個(gè)程序讓處理器同時(shí)運行多個(gè) USER 模式程序。這個(gè)“操作系統”(OS) 程序運行在 SUPER 模式,并管理在 USER 模式中運行的程序。

  當 OS 運行時(shí),會(huì )查看需要運行的所有 USER 模式程序,選擇一個(gè)運行,然后使用 EXITSUPER 這樣的指令通知處理器切換到 USER 模式以運行程序。所選的程序會(huì )一直運行,直到有事件導致處理器切回 SUPER 模式。這類(lèi)事件可以是來(lái)自 USER 模式程序的 ENTERSUPER 指令,或外部事件,例如定時(shí)器,它可以不提醒正在 USER 模式下運行的程序將處理器切換到 SUPER 模式。無(wú)論切換如何發(fā)生,每當事件發(fā)生時(shí),我們都可構建 OS 以根據相應策略相繼選擇和運行程序。當切換快速進(jìn)行時(shí),用戶(hù)認為 USER 程序同時(shí)運行。

  USER HYPER 模式的用處是讓很多 SUPER 程序運行。SUPER 模式下的每個(gè)程序都可以是 OS;這些 OS 本身會(huì )讓很多 USER 程序并行運行。

  SUPER 處理器模式還能防止 USER 程序干擾運行在 SUPER 模式的程序或其他 USER 模式程序。USER 模式程序的任何錯誤或違規都可被控制在該程序自身的實(shí)例中,不會(huì )破壞或干擾為 SUPER 模式操作保留的系統存儲器和寄存器。


上一頁(yè) 1 2 3 4 5 6 下一頁(yè)

關(guān)鍵詞: Zynq MPSoC

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>