MCU單晶片韌體設計

2017年5月11日 星期四

VM 虛擬化概念(一)



只有一顆 CPU,同時執行多個作業系統, 而讓每一個作業系統以為他使用到全部CPU資源,然而這是 CPU 虛擬化得來的結果。(類似Multi-thread, 每個thread以為自己是CPU唯一的使用者,然而這是OS 進行排程scheduling的結果 ,使得每一個 thread 感覺同時執行中)\

實現VM的軟體稱之VMM (Virtual Machine Monitor),它伴演一個Virtual Machine Manager 的角色。它是虛擬化技術的實踐者,對Guest OS 作出一個抽象化(虛擬化)的架構,使得Guest OS 看不到真正的硬體,只看得到VMM,而把CPU、Memory、I/O全部抽象化。


虛擬化CPU:

  • 讓每一個Guest OS 以為只有一個CPU, 並且完全擁有系統所有資源。 這須要存在一個Virtual Machine Monitor (Hypervisor) 來實現,讓 Guest OS 跑Hypervisor上。所有 Guest OS 產生的Exception 都送到Hypervisor上來處理。



 ARM Virtualization Extension
  • From ARM Cortex-A15 and beyond, ARM architectures are including virtualization extension.
  • In CPU virtualization extension, ARM adds a new mode and a new Privilege Level. It calls “Hyp mode” which is running on Non-Secure Privilege Level 2.






虛擬化Memory:
  • 讓每一個Guest OS 以為只有一塊Memory,Guest OS 看不到實際Memory,Guest OS 看到的硬體乃由VMM 所模擬出來的抽象化Memory。
  • In Memory virtualization extension, ARM adds  “Intermediate Physical Address”, let Guest OS cannot access physical address directly.


 arm bootloader

虛擬化I/O


  • Guest OS 碰不到實際硬體,Guest OS 看到的硬體乃由VMM 所模擬出來的抽象化硬體架構。
  • VMM 要實作一個Virtual Device給Guest OS。VM自己本身處理實際硬體包含中斷訊號,而產生Virtual IRQ給Guest OS。
  • In I/O virtualization extension, ARM adds “Virtual Generic Interrupt Controller” interface to deliver interrupt in more faster way.



References:

沒有留言 :

張貼留言