x86架構-學習筆記

x86-64是x86架構的延續,是64位微處理器架構機器相應的指令集。
在x86-64出現以前,Intel與惠普聯合推出IA-64架構,此架構與x86不兼容且沒什麼市場。AMD首次公開64位集爲IA-32提供擴展,稱爲x86-64,後來命名爲amd64,後來Intel也採用了這個架構,叫做intel 64.
後來這個名字爲了不偏袒任何一家,所以起名爲x86-64架構,能夠將x86架構移植到64位環境中,併兼容以前的程序。

中斷架構:
中斷是由設備,經過中斷控制器PIC發送給CPU的。

IO架構:
計算機除了CPU計算就是IO操作了。
IO是CPU訪問外設的方法。按照訪問方式不同,分爲端口IO,和內存映射IO。
1)端口IO是通過IO端口訪問設備寄存器的。x86有65536個8位的IO端口,編號爲0x0~0xFFFF,共65535個端口構成了64K的端口地址空間。CPU通過引腳標識這是一次IO端口訪問。芯片組通過這個標識知道了這個是端口號,並完成相應操作。
2)內存映射IO,這種方式更爲常見。通過內存訪問的形式訪問設備寄存器或設備RAM。將設備寄存器和設備RAM映射到物理地址空間,然後直接訪問內存即可。但是MMIO不可緩存到TLB當中。有些CPU架構不支持Port IO,MMIO更先進。

特權指令和敏感指令
特權指令是 系統中操作和管理關鍵系統資源的指令。 特權指令只能在最高特權級上正常運行,如果不是最高特權級,會使處理器陷入到最高特權級上,進而將特權指令交由系統軟件處理。

敏感指令是操作特權資源的指令,是虛擬化中的概念。讀寫敏感的寄存器或內存,訪問內存系統或IO指令。所有的特權指令都是敏感指令。但不是所有的敏感指令都是特權指令。
傳統的虛擬化技術一般是通過“陷入再模擬”的方式實現的。客戶機OS在非特權級上。因執行敏感指令而陷入到VMM時,VMM模擬執行引起異常的敏感指令。如果系統中的所有的敏感指令都是特權指令,那麼他就是可以虛擬化的。

異常與中斷的區別:
中斷是由外部設備發生的,與CPU當前執行的代碼無關。但是異常卻與當前執行代碼有關,按照嚴重程度分爲三類:

錯誤:由某種錯誤引起的,處理器將控制權交給相應的處理程序,缺頁錯誤就是此類錯誤。
陷阱:執行某條特權指令後引起的異常。陷阱是有益的異常,陷阱最重要的用途是在用戶態和內核態系統調用之間提供一個像過程一樣的接口。實現系統調用的INT 80指令就是屬於此類。
終止:指不可恢復的錯誤,將導致程序終止。典型的是一些硬件錯誤。

這些都是讀了《虛擬化技術--原理與實現》的一些收穫,好書啊。






<script type=text/javascript charset=utf-8 src="http://static.bshare.cn/b/buttonLite.js#style=-1&uuid=&pophcol=3&lang=zh"></script> <script type=text/javascript charset=utf-8 src="http://static.bshare.cn/b/bshareC0.js"></script>
閱讀(61) | 評論(0) | 轉發(0) |
給主人留下些什麼吧!~~
評論熱議
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章