가상 IOMMU: 협력 DMA 버퍼 추적을 갖는 인텔 - 유 장, Intel

Find AI Tools
No difficulty
No complicated process
Find ai tools

가상 IOMMU: 협력 DMA 버퍼 추적을 갖는 인텔 - 유 장, Intel

코어 MMU: 협력 DMA 버퍼 추적을 활용한 가상 메모리 관리

📋 목차

  1. 서론
  2. 정적 피닝과 간접 타일의 배경
  3. 정적 피닝과 VRMMU의 문제점
  4. DNA 추적의 필요성
  5. 쿠알라루무: 협력 DNA 버퍼 추적을 갖는 가상 MMU
  6. MMU의 상기 호스트 고려사항
  7. 직접 I/O의 장점과 문제점
  8. 가상 MMU에 대한 협약 기능 도입
  9. 쿠알라루무의 구현과 성능평가
  10. 기타 고려사항과 개선 방향
  11. 결론

🖊️ 서론

안녕하세요, 인텔 가상화 팀에서 존으로 참여한 스피커입니다. 오늘은 가상 메모리 관리에 대해 이야기하려고 합니다. 주제는 코어 MMU와 협력 DMA 버퍼 추적입니다. 이에 대한 배경, 동기, 기존 문제점, 그리고 우리가 도입하려는 쿠알라루무(concert-mmu)에 대해 각각 살펴보도록 하겠습니다.

📚 정적 피닝과 간접 타일의 배경

VRMMU(Virtual Reality Memory Management Unit)는 클라우드와 데이터 센터에서 널리 사용되는 최고의 성능 I/O 가상화 방법 중 하나인 직접 I/O(Direct IO)에 직면한 문제점을 해결하기 위해 고안되었습니다. 직접 I/O는 가상 머신에 하드웨어 장치를 할당함으로써 게스트가 호스트 정보의 도움 없이 DMA(Direct Memory Access) 작업을 직접 수행할 수 있는 방식입니다. 그러나 정적 피닝(static pinning)의 문제와 메모리 활용량의 감소 등의 문제가 발생합니다.

정적 피닝은 대부분의 장치가 DNA pitfalls를 지원하지 않기 때문에 DMA 버퍼가 하드웨어나 MMU(Memory Management Unit)에 고정되어야 함을 의미합니다. 정적 피닝은 DMA 플랫폼이 사전 할당되고 MMU 페이지 테이블에 사상되어야 함을 의미합니다. 또한 호스트는 게스트의 DMA 활동을 볼 수 없으므로 게스트 메모리 전체를 하드웨어 RMMU(Reconfigurable Multi Memory Management Unit)에 사전 할당하고 사상해야 합니다.

정적 피닝의 문제점은 가시적입니다. 크게 증가된 값 생성 시간과 크게 감소된 메모리 활용량 등이 그 예입니다. 페이지 이동, 메모리 과부하, 동적 할당 등과 같은 고급 기능을 사용할 수 없다는 점도 문제점입니다.

📝 쿠알라루무: 협력 DNA 버퍼 추적을 갖는 가상 MMU

정적 피닝의 한 가지 해결책은 가상 RMMU(virtual RMMU)를 게스트에 노출하는 것입니다. 가상 RMMU의 주된 목적은 클라이언트의 DNA 버퍼에 대한 내부 보호에 있다 보니 부수적인 효과로는 동적 피닝이 가능해집니다.

DNA 버퍼 추적 매커니즘을 가진 쿠알라루무를 제안합니다. 이 매커니즘은 협력적으로 게스트와 호스트 사이에서 DNA 버퍼에 대한 정보를 공유합니다. 주요 정보는 각 게스트 페이지의 피닝 상태와 매핑 상태입니다. 호스트는 페이지가 이미 피닝되었는지를 알려줍니다. 피닝 상태가 이미 1로 설정되어 있다면 호스트에서는 페이지가 피닝된 것으로 간주되고 피닝 여부가 0인 게스트 페이지에 대해서만 피닝 요청을 보냅니다.

쿠알라루무의 구현은 새로운 MMU 인터페이스 그룹의 도입을 필요로 합니다. 또한 DMA 추적 테이블(DTT)의 구성과 호스트 게으름 의견, 그리고 기타 로직에 대한 고려사항을 다루고 있습니다. 구현은 RTL(Retail) 용으로 진행되며 다양한 VRM(Virtual Reality Memory) 구현에 쉽게 적용할 수 있습니다.

✔️ 쿠알라루무 구현 예상 성능

쿠알라루무의 성능을 위해 다양한 벤치마크를 활용한 평가를 진행했습니다. 포함된 벤치마크는 40G 네트워크, NVMe SSD, 인텔 GPU 등 다양한 요소를 고려하였으며, 기존의 직접 I/O와 비교하였습니다. 결과는 100% 이상의 성능 향상을 보여주었으며, 피닝된 게스트 페이지의 수는 전체 게스트 메모리의 1% 미만입니다. 성능 데이터와 자세한 참고 환경 설정은 저희의 논문에서 확인하실 수 있습니다.

❓ 자주 묻는 질문 (FAQ)

Q1: 협력 DMA 버퍼 추적을 사용하면 어떤 이점이 있을까요?

A1: 협력 DMA 버퍼 추적을 사용함으로써 정적 피닝을 대체할 수 있습니다. 이는 메모리 관리의 효율을 대폭 향상시켜줍니다.

Q2: 쿠알라루무는 어떤 상황에서 더 좋은 선택일까요?

A2: 쿠알라루무는 메모리 관리의 성능을 향상시키는 데 도움이 되는 다양한 상황에서 유용합니다. 특히 동적 피닝이 필요할 때 사용될 수 있습니다.

Q3: 쿠알라루무는 어떤 기술적 도전 과제를 가지고 있나요?

A3: 쿠알라루무의 주요 도전 과제는 호스트가 게스트가 쿠알라루무를 사용할지 여부를 확인하지 못하는 것입니다. 또한, 게스트 커널이 쿠알라루무를 적용하기 위해 추가 조치를 취해야 할 수도 있습니다.

🔗 참고 자료

이제까지 저희가 제안하는 쿠알라루무와 관련된 내용을 상세히 알아보았습니다. 궁금한 점이나 의견이 있으시면 언제든지 질문해주세요. 감사합니다.

Most people like

Are you spending too much time looking for ai tools?
App rating
4.9
AI Tools
100k+
Trusted Users
5000+
WHY YOU SHOULD CHOOSE TOOLIFY

TOOLIFY is the best ai tool source.