Armใขใผใญใใฏใใฃ๏ผไปฎๆณๅ(Virtualization) [่่ ็ด่ฌ ็ฌฌ3้จ-2]
ใทในใใ ใฝใใใฆใงใขใฎๅบๆฌไธญใฎๅบๆฌใๆๆฐArmใขใผใญใใฏใใฃ๏ผArmv8-AใArmv7-A๏ผใฎๆ ธๅฟใงใใไปฎๆณๅใใใใทในใใ ใฝใใใฆใงใข้็บใฎใใใฎArmใขใผใญใใฏใใฃใฎๆง้ ใจๅ็ใใฎ่่ ใใใฃใใใจใๆใใใพใ๏ผ
ๅ่ฌ็ 134ๅ
้ฃๆๅบฆ ๅ็ด
ๅ่ฌๆ้ ็กๅถ้

- ๆช่งฃๆฑบ
ํ์ดํผ๋ฐ์ด์ ธ ์คํ
์๋ ํ์ธ์, ํ์ดํผ๋ฐ์ด์ ธ ๋จ์ผ๋ก ์ปจํธ๋กค์ด ๋์ด ์ค๋ฉด ํ๋ก์ธ์ค ์คํ์ ์ฐ๊ฒ ๋๋์ง ๊ถ๊ธํฉ๋๋ค. (์ปค๋์์ ๊ทธ๋ ๊ฒ ํ๋ ๊ฒ ์ฒ๋ผ)์์ ์๋ก ๋ง๋ค๊ฒ ๋๋์?
๊ฐ์ํarm-architectureํ๋์จ์ด-ํดํนcpu-architecturexenhypervisorarmv8platformpjt040819
ใป
0
99
1
- ๆช่งฃๆฑบ
ํ์ดํผ๋ฐ์ด์ ธ
ํ์ดํผ๋ฐ์ด์ ธ ๋จ์ ํ์ด์งํ ์ด๋ธ์ mapping ์ ๋ค์ํ๋ค. ์ฆ, os ๋จ์์ ํ ๋นํด์ค๋ค๊ณ ํ physical memory ๋ hypervisor level ์์ ๋ณด๋ฉด ๊ฐ์๋ฉ๋ชจ๋ฆฌ๊ฐ ๋๋ค.๋ผ๊ณ ์ดํดํ๋ฉด ๋๋์? ์๋๊ฐ ๋ง์ด ๋๋ ค์ง ๊ฒ ๊ฐ๊ธด ํ๋ค
๊ฐ์ํarm-architectureํ๋์จ์ด-ํดํนcpu-architecturexenhypervisorarmv8platformpjt040819
ใป
0
133
2
- ๆช่งฃๆฑบ
exception handler ์ฃผ์
์๋ ํ์ธ์, exception handler ์์ vectors: ๋ผ๊ณ ๋ถ์ด์๋ํ๊ทธ์ ์ฃผ์๋ ๊ฐ์์ฃผ์์ธ๊ฐ์? 0xFFFF .. ๋ก ์์ํ๋ ๊ฒ์ผ๋ก ๋ณด์ ๊ฐ์์ฃผ์ ๊ฐ์๋ฐ, ๊ทธ๋ฐ๋ฐ ๋ง์ฝ page fault ๊ฐ ๋๊ฒ
๊ฐ์ํarm-architectureํ๋์จ์ด-ํดํนcpu-architecturexenhypervisorarmv8platformpjt040819
ใป
0
109
2
- ๆช่งฃๆฑบ
virtualization ์์
์๋ ํ์ธ์, virtualization hypervisor ๋ ๋ณดํต context switching ๊ธฐ๋ฅ์ ํ์ฌํ๊ณ ์๋์? ์๋์ฐจ ์ชฝ์์ ๋ง์ด ์ฌ์ฉ๋๋ค๊ณ ํ๋๋ฐ, ์ด๋ป๊ฒ ์ ํ์ด ๋๋์ง ์ ์ฐ์์ด ์ ๋๋ค์&nbs
๊ฐ์ํarm-architectureํ๋์จ์ด-ํดํนcpu-architecturexenhypervisorarmv8platformpjt040819
ใป
0
104
2
- ๆช่งฃๆฑบ
exception handler
exception handler ๋ ์ด๋ ๊ณต๊ฐ์์ ์คํ๋ ๊น?๋ฅผ ๋ฃ๊ณ hypervisor, trusted zone ์ ๋ฃ๊ณ ๋๋์ผ๋จ process ๊ฐ EL0 ์์ ์คํ๋๊ณ ์์์ ๋ ์๋ ํ๋ก์ธ์ค ๊ณต๊ฐ์์ ์คํ์ ์์ ๋๊ฐ๋ค๋ ์ฌ์ค(์ด๊ฒ ํ
๊ฐ์ํarm-architectureํ๋์จ์ด-ํดํนcpu-architecturexenhypervisorarmv8platformpjt040819
ใป
0
106
1
- ๆช่งฃๆฑบ
WFE, WFI, HVC
3๊ฐ์ง EL2 ๋ก ๊ฐ๋ instruction ์ด ์๋ค๊ณ ํ๋๋ฐ์,์ด ์ธ ๊ฐ์ง๋ ๊ตณ์ด ์ ๋๋์๊ณ ,(์ฐพ์๋ณด๋ ์ด ์ง๋ฌธ์ ๋ ๊ฐ์ "ํธ๋ฉ ๋ช ๋ น์ด ์ง๋ฌธ" ์ ๋์ ์๋ค์)๋ WFE, WFI ์ ์ ์ ๋ ฅ ๊ธฐ๋ฅ์ด ์ ๊ฐ์ด ํฌํจ๋์ด ์๋์ง
๊ฐ์ํarm-architectureํ๋์จ์ด-ํดํนcpu-architecturexenhypervisorarmv8platformpjt040819
ใป
0
111
1
- ๆช่งฃๆฑบ
virtualization
์๋ ํ์ธ์, ๊ฐ์ํ์ ๋ํด์ ์ง๋ฌธ์ด ์์ต๋๋ค. ๊ฐ์ํ๋ฅผ ํ๋์จ์ด ๋จ์์ ์ง์์ ํด์ค๋ค๋ ๊ฒ์, ์ฌ๋ฌ๊ฐ์ง ์ง์์ ํด์ค ๋ค๋ ์๋ฏธ์ธ ๊ฒ ๊ฐ์ต๋๋ค. hypervisor ์์ os ๋ฅผ ๋ฐ๊ฟ ๋ ๊ฐ os ๋ณ๋ก ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ
๊ฐ์ํarm-architectureํ๋์จ์ด-ํดํนcpu-architecturexenhypervisorarmv8platformpjt040819
ใป
0
70
1
- ๆช่งฃๆฑบ
hypervisor์์ IPC๋ ์ด๋ป๊ฒ ์๋๋๋์ง ๊ถ๊ธํฉ๋๋ค.
hypervisor ์์ ๋๊ฐ์ ๋ค๋ฅธ guest os๊ฐ ์๋ค๋ฉด, ๊ทธ๋, ๊ฐ guest os์์ ์๋ก ๋ค๋ฅธ app์ด ์คํ๋๋๋ฐ ์ด๋ค ๋ฉ์ปค๋์ฆ์ผ๋ก ์๋ก์ app์ inter process communication์ด ๊ฐ๋ฅํ๊ฐ์?๊ทธ๋ฆฌ๊ณ inter proce
๊ฐ์ํarm-architectureํ๋์จ์ด-ํดํนcpu-architecturexenhypervisorarmv8lswlmk6263
ใป
0
248
1
- ๆช่งฃๆฑบ
EL1 IRQ??
์๋ ํ์ธ์! ๊ฐ์ ์ ๋ง ์ ๋ฃ๊ณ ์์ต๋๋ค.๊ถ๊ธํ ์ฌํญ์ด ์์ด ๋ฌธ์ ๋จ๊น๋๋ค. ๊ฐ์ ์ค๊ฐ์ "EL1์ guest OS๊ฐ ์ฒ๋ฆฌํด์ผํ๋ irq๋ฅผ Hypervisor์์ hooking์ ํด์ ์ฒ๋ฆฌํ๊ฒ ํ ์ ์๋ค" ๋ผ๊ณ ํ์ จ๋๋ฐ์, EL1์ irq๋ผ๋๊ฒ ๋ฌด์จ
๊ฐ์ํarm-architectureํ๋์จ์ด-ํดํนcpu-architecturexenhypervisorarmv8gi86305500
ใป
0
436
3
- ๆช่งฃๆฑบ
์ต์ ์ ๋ชจ๋ธ์ ์ด์ฉํ ํ์ดํผ๋ฐ์ด์ ๋ฅผ ๊ตฌํ ์ง๋ฌธ
์๋ ํ์ธ์.์ต์ ์ ๋ชจ๋ธ์ ์ด์ฉํด์ ํ์ดํผ๋ฐ์ด์ ๋ฅผ ๊ตฌํํ๋ ๋ฐฉ์๋ง๊ณ ๋ค๋ฅธ ๋ฐฉ๋ฒ,๋ชจ๋ธ๋ก ํ์ดํผ๋ฐ์ด์ ๋ฅผ ๊ตฌํํ๋ ๋ฐฉ๋ฒ์ด ๋ ์๋์ง ๋ฌธ์๋๋ฆฝ๋๋ค.์ต์ ์ ๋ชจ๋ธ์ ์ด์ฉํด์ ํ์ดํผ๋ฐ์ด์ ๋ฅผ ๊ตฌํํ๋ค๋ผ๋ ํฌ๊ด์ ์ธ ์๋ฏธ๊ฐ ์ ์ดํด๋์ง ์์์ ์ด๋ฐ ์ง๋ฌธ์ด ๋ฐ
๊ฐ์ํarm-architectureํ๋์จ์ด-ํดํนcpu-architecturexenhypervisorarmv8grapesgun0624
ใป
0
252
1
- ๆช่งฃๆฑบ
lower exception level ํธ๋ค๋ฌ ์ง๋ฌธ
๋ค์ ๋๊ฐ์ง์ค์ ์ด๋ค ๊ฒ์ด ๋ง๋์ง ๋ฌธ์๋๋ฆฝ๋๋ค.1. wfe, wfi, hvc๋ฅผ ์ด์ฉํด์ guest exit์ ํ์๋ ์ต์ ์ ์ด ๋ฐ์ํ๋ฉด synchronous ์ต์ ์ ์ฃผ์๋ก ๋ถ๊ธฐ2. wfe, wfi, hvc๋ฅผ ์ด์ฉํด์ guest exit์ ํ
๊ฐ์ํarm-architectureํ๋์จ์ด-ํดํนcpu-architecturexenhypervisorarmv8grapesgun0624
ใป
0
214
1
- ๆช่งฃๆฑบ
์ต์ ์ ๋ฒกํฐ ํ ์ด๋ธ ์ง๋ฌธ
์๋ ํ์ธ์. ๊ฐ์ ๋ด์ฉ์ ๋ค์๊ณผ ๊ฐ์ด ์ดํดํ๋๋ฐ ๋ง๋์ง ๋ฌธ์๋๋ฆฝ๋๋ค. "ํ์ฌ ํ์ดํผ๋ฐ์ด์ ๋ชจ๋(EL2)๊ฐ ๋์ํ๋ ์์คํ ์ธ๋ฐ, ๊ฒ์คํธ OS ์ปค๋(EL1)์์ Synchronous ์ต์ ์ ์ด ๋ฐ์ํ๋ฉด VBAR_EL2 + 0x400
๊ฐ์ํarm-architectureํ๋์จ์ด-ํดํนcpu-architecturexenhypervisorarmv8grapesgun0624
ใป
0
171
1
- ่งฃๆฑบ
ํธ๋ฉ ๋ช ๋ น์ด ์ง๋ฌธ
์๋ ํ์ธ์.HVC, TWI, TWE ๋ช ๋ น์ด์์ ๊ฐ๊ฐ์ ์ฉ๋ ๋ฐ ์ฐจ์ด์ ์ด ๊ถ๊ธํฉ๋๋ค. ์ฆ ์ด๋ค ์ํฉ์์ HVC, TWI, TWE๊ฐ ์ฌ์ฉํ๋๋ก ๊ถ์ฅ๋๋์ง ๊ถ๊ธํฉ๋๋ค.๊ฐ์ฌํฉ๋๋ค.
๊ฐ์ํarm-architectureํ๋์จ์ด-ํดํนcpu-architecturexenhypervisorarmv8grapesgun0624
ใป
0
283
2

