日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

模擬技術學習

微云疏影 ? 來源:csdn,qq_40316844 ? 作者:csdn,qq_40316844 ? 2023-02-13 09:37 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

QEMU架構和內部

快速模擬(QEMU)

機器模擬器+虛擬器

模式:

用戶模式模擬:允許為一個CPU構建的進程被另一個CPU執(zhí)行

QEMU作為進程模擬器

系統(tǒng)模式模擬:允許模擬一個完整的系統(tǒng),包括處理器和各種外圍設備

QEMU作為系統(tǒng)模擬器

常用:

用于交叉編譯開發(fā)環(huán)境

虛擬化,特別是設備模擬,象xen和kvm

安卓模擬器(SDK的一部分)

動態(tài)二進制翻譯

動態(tài)翻譯

第一種解釋

以副產品的形式執(zhí)行代碼發(fā)現(xiàn)

翻譯代碼

象它被發(fā)現(xiàn)的那樣遞增的

將翻譯后的塊放入代碼緩存中

把源到目標主機的映射保存到地址查詢表中

模擬過程

運行完已經翻譯的塊

在表里尋找下一個資源主機

如果已經翻譯了,跳轉到目標主機

沒有就直接翻譯

象JIT編譯器一樣工作,但是不包括解釋器

所有的客戶代碼都要經過二進制翻譯

客戶代碼被劃分成翻譯塊

一個翻譯塊和基本塊相似,因為都是作為一個整體執(zhí)行(整個塊中沒有跳轉)

翻譯塊被翻譯成一個單獨的主機指令序列,被緩存到翻譯緩存中。

緩存塊使用客戶虛擬地址(PC計數(shù)),所以他們能很容易的被發(fā)現(xiàn)

翻譯塊的緩存大小能夠改變(通常是32M)

一旦緩存用完,整個緩存區(qū)清零

pYYBAGPplGqAD7TXAABIqiUrVCM940.jpg

先將源指令流(二進制)轉換成更短小且更加簡易的操作,即微指令(C語言),被GCC編譯成對象文件(二進制),最后QEMU將對象文件鏈接成目標的指令流(二進制)。

poYBAGPplGqAJRRdAAAqwbKxV3c720.jpg

功能模擬

模擬處理器做的工作,而不是處理器怎么做

動態(tài)二進制翻譯

解釋器一次執(zhí)行一條指令

固定的開銷顯著降低

反而,QEMU根據(jù)需要轉換代碼

翻譯基本塊 產生本地主機代碼‘

把翻譯塊存儲到翻譯緩存中

微小代碼發(fā)生器(TCG)

微操作(微指令)

固定的寄存器映射能夠降低負載和存儲字符串

翻譯塊

一個TCG基本塊對應著一個被分支指令終止的指令列表

塊鏈接

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQwMzE2ODQ0,size_16,color_FFFFFF,t_70

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQwMzE2ODQ0,size_16,color_FFFFFF,t_70

cpu_exec() 在主函數(shù)的每一步都被調用

項目會一直執(zhí)行除非遇到一個未連接的塊

通過 結尾返回cpu_exec()

塊鏈接

通常來說,每一個翻譯塊的執(zhí)行都伴隨這很多特殊代碼塊的執(zhí)行

開始時初始化處理器來執(zhí)行產生的主機代碼,并跳轉到代碼塊

結束時恢復正常狀態(tài)并返回到主循環(huán)

返回主循環(huán)后,每一個塊顯著的增加了開銷,增長的還很快

當一個塊返回主循環(huán),下一個塊已經知道并且已經被翻譯,QEMU能夠修改源代碼來直接跳轉到下一個塊,而不是跳轉到結尾

直接在基本塊之間跳轉

為跳轉準備空間,然后回到結尾

每一次一個塊返回,都要嘗試鏈接它

當是發(fā)生在幾個連續(xù)的塊上時,這些塊會形成鏈接和循環(huán)

這允許QEMU模擬緊密的循環(huán),而不需要運行額外的代碼

在循環(huán)的條件下,這也意味除非執(zhí)行到一個沒有翻譯或者沒有鏈接的塊,這個控件不會返回到QEMU

異步中斷

如果一個硬件中斷被掛起,QEMU不會檢查每一個基本塊。反而,用戶必須要調用一個特殊的功能來告訴說有個中斷被掛起

這個功能重置了當前執(zhí)行的塊的鏈接,返回到控制CPU模擬的主循環(huán)

寄存器映射

如果目標寄存器的數(shù)目大于源寄存器的數(shù)目(例如:翻譯x86的二進制到RISC)(RISC精簡指令集)

當目標寄存器的數(shù)量不夠時,可能會基于每一個塊,或者每一個追蹤,或者每一個循環(huán)

不常用的寄存器(源)可能沒有映射

如何處理項目計數(shù)器

目標主機不同于源主機

對于間接的分支,寄存器持有源主機 一定會提供一種將源主機映射到目標主機的方法

翻譯系統(tǒng)需要時刻追蹤源主機

其它主要組件

內存地址轉換

由軟件控制的MMU(模型)將目標虛擬地址翻譯成主機虛擬地址

兩級客戶物理頁描述符表

客戶虛擬地址和主機虛擬地址之間的映射

地址轉換緩存(tlb_table)直接將目標虛擬地址翻譯成主機虛擬地址

客戶虛擬地址和該設備注冊的I/O功能之間的映射

用于內存I/O映射的緩存(iotlb)

設備模擬

i440FX主機PCI網橋,Cirrus CLGD 5446 PCI VGA卡,PS/2鼠標和鍵盤,PCI IDE接口(HDD, CDROM), PCI和ISA網絡適配器,串口,PCI UHCI USB控制器和虛擬USB hub,…

軟件地址轉換

虛擬到物理地址的轉換時在每一次內存訪問時完成的

地址轉換緩存加速了轉換

為了避免每次MMU映射改變時刷新已經翻譯代碼的緩存,QEMU使用的是物理索引的翻譯緩存

每一個基礎塊都使用他的物理地址索引

當MMU映射改變時,只有基礎塊的鏈接被重置,(例如一個基礎塊不能直接跳轉到另一個)

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQwMzE2ODQ0,size_16,color_FFFFFF,t_70

QEMU存儲堆棧

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQwMzE2ODQ0,size_16,color_FFFFFF,t_70

應用和客戶內核的工作類似于裸金屬

客戶通過仿真硬件與QEMU對話

QEMU代表客戶對一個鏡像文件執(zhí)行I/O

主機內核對待客戶I/O就像任何用戶應用程序一樣

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQwMzE2ODQ0,size_16,color_FFFFFF,t_70

來源:csdn,qq_40316844

審核編輯 :李倩

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 二進制
    +關注

    關注

    2

    文章

    809

    瀏覽量

    43227
  • C語言
    +關注

    關注

    183

    文章

    7648

    瀏覽量

    146259
  • 模擬器
    +關注

    關注

    2

    文章

    1028

    瀏覽量

    45881
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    華為模擬技術講義

    華為模擬技術講義,學習一下,對你肯定很有幫助!
    發(fā)表于 07-08 09:41

    模擬電子技術

    模擬電子技術學習下吧
    發(fā)表于 03-24 18:42

    模擬電子技術基礎

    求推薦學習模擬電子技術基礎的軟件
    發(fā)表于 08-19 15:46

    我的模擬技術學習心得

    和ADI都是很好的模擬技術學習的大學,從各種運放,精密的,低噪的,高速的,低功耗,差分的都有很好的涉及,在ADI和TI的幫助下我對運放的認識越來越深,能熟練地讀懂數(shù)據(jù)手冊,能夠有SPICE模型并借助仿真
    發(fā)表于 03-13 19:38

    模擬電子電路學習教程

    模擬電子電路學習教程:從最基礎的入門,并配有圖解詳細說明,步步深入,非常適合初學模擬電子技術學習。
    發(fā)表于 01-18 15:04 ?145次下載
    <b class='flag-5'>模擬</b>電子電路<b class='flag-5'>學習</b>教程

    模擬電子電路的學習方法

    模擬電子電路的學習方法
    發(fā)表于 08-07 15:49 ?254次下載
    <b class='flag-5'>模擬</b>電子電路的<b class='flag-5'>學習</b>方法

    模擬電子技術基礎》習題答案

    模擬電子技術的課后習題進行了詳細解答,能有效幫助對模擬電子技術基礎的學習
    發(fā)表于 11-17 11:23 ?89次下載

    模擬電路學習筆記

    模擬電子的相關知識學習教材資料——模擬電路學習筆記
    發(fā)表于 09-20 16:10 ?0次下載

    模擬電路和數(shù)字電路的學習筆記

    模擬電子的相關知識學習教材資料——模擬電路和數(shù)字電路的學習筆記
    發(fā)表于 09-20 16:10 ?0次下載

    Google與NASA合作 將利用模擬和機器學習技術搜索外星生命

    Google Cloud與NASA的前沿開發(fā)實驗室合作,利用模擬和機器學習技術搜索外星生命。
    發(fā)表于 10-22 16:47 ?1342次閱讀

    實例解讀模擬電子技術 完全學習與應用pdf

    實例解讀模擬電子技術 完全學習與應用pdf
    發(fā)表于 12-09 16:08 ?0次下載

    模擬電子電路學習教程分享

    模擬電子電路學習教程分享。
    發(fā)表于 03-10 14:36 ?0次下載

    模擬電子技術基礎

    模擬電子技術基礎 用于學習模擬電路需要的必備資料。
    發(fā)表于 10-17 14:20 ?209次下載

    模擬電子:掌握信號濾波技術

    掌握信號濾波技術是指學習如何使用模擬電子技術來處理信號,以獲得更好的信號質量。掌握信號濾波技術需要學習
    發(fā)表于 02-17 15:05 ?1481次閱讀

    模擬電子電路學習教程

    電子發(fā)燒友網站提供《模擬電子電路學習教程.pdf》資料免費下載
    發(fā)表于 04-14 09:40 ?93次下載
    凭祥市| 金寨县| 肥城市| 金华市| 敦化市| 德阳市| 格尔木市| 邓州市| 长岭县| 延庆县| 肃南| 肇源县| 栾川县| 榆林市| 雅安市| 炎陵县| 金堂县| 邹平县| 平陆县| 永平县| 南靖县| 玛纳斯县| 宜宾县| 嵊泗县| 安岳县| 东至县| 琼中| 新龙县| 辽阳县| 玉林市| 东丽区| 婺源县| 宜章县| 肇源县| 天等县| 祁连县| 竹山县| 金溪县| 科尔| 江口县| 潍坊市|