ScholarGate
Trợ lý

Ảo hóa I/O và DMA

Truy cập bộ nhớ trực tiếp cho phép các thiết bị truyền dữ liệu đến và đi từ bộ nhớ mà không cần sự can thiệp của bộ xử lý cho từng từ, và ảo hóa I/O mở rộng điều này để chia sẻ an toàn các thiết bị vật lý giữa các máy ảo, cả hai đều là trung tâm của các hệ thống hiện đại và đám mây hiệu quả.

Tìm chủ đề với PaperMindSắp ra mắtFind papers & topics
Tools & resources
Tải xuống bản trình chiếu
Learn & explore
VideoSắp ra mắt

Definition

Truy cập bộ nhớ trực tiếp là một cơ chế mà một thiết bị truyền dữ liệu trực tiếp đến hoặc từ bộ nhớ chính mà không cần bộ xử lý sao chép từng dữ liệu, và ảo hóa I/O là tập hợp các kỹ thuật trình bày và chia sẻ các thiết bị I/O vật lý giữa nhiều máy ảo một cách an toàn và hiệu quả.

Scope

Chủ đề này bao gồm truy cập bộ nhớ trực tiếp (DMA) và ảo hóa I/O: cách các bộ điều khiển DMA di chuyển dữ liệu lớn và báo hiệu hoàn thành, vai trò của IOMMU trong việc dịch địa chỉ và bảo vệ cho các hoạt động truyền dữ liệu của thiết bị, và các kỹ thuật chia sẻ thiết bị giữa các máy ảo như mô phỏng thiết bị, bán ảo hóa và truyền trực tiếp được hỗ trợ bởi phần cứng. Nó đề cập đến việc di chuyển dữ liệu thiết bị hiệu quả và an toàn. Nó không bao gồm điều khiển thiết bị cơ bản và ngắt (kiến trúc I/O và bus) và phương tiện lưu trữ (thiết bị lưu trữ thứ cấp).

Core questions

  • DMA truyền dữ liệu lớn mà không chiếm dụng bộ xử lý như thế nào?
  • IOMMU cung cấp dịch địa chỉ và bảo vệ cho các hoạt động truyền dữ liệu của thiết bị như thế nào?
  • Các thiết bị vật lý được chia sẻ an toàn giữa các máy ảo như thế nào?
  • Những đánh đổi giữa mô phỏng thiết bị, bán ảo hóa và truyền trực tiếp là gì?

Key concepts

  • truy cập bộ nhớ trực tiếp (DMA)
  • bộ điều khiển DMA và các mô tả
  • ngắt hoàn thành
  • IOMMU và dịch địa chỉ thiết bị
  • mô phỏng thiết bị
  • I/O bán ảo hóa
  • truyền trực tiếp thiết bị và SR-IOV
  • cô lập và bảo vệ

Key theories

Truy cập bộ nhớ trực tiếp
Một bộ điều khiển DMA truyền các khối dữ liệu giữa một thiết bị và bộ nhớ một cách tự động, chỉ ngắt bộ xử lý khi hoàn thành, điều này chồng chéo I/O với tính toán và là yếu tố thiết yếu cho việc di chuyển dữ liệu thông lượng cao.

Mechanisms

Đối với một hoạt động truyền DMA, bộ xử lý lập trình một bộ điều khiển với nguồn, đích và độ dài, sau đó tiếp tục các công việc khác trong khi thiết bị di chuyển dữ liệu và tạo ra một ngắt hoàn thành. Một IOMMU dịch các địa chỉ mà các thiết bị sử dụng và giới hạn quyền truy cập của chúng, cung cấp sự bảo vệ và cho phép truyền trực tiếp an toàn. Các máy ảo truy cập các thiết bị thông qua các thiết bị được mô phỏng, các trình điều khiển bán ảo hóa, hoặc truyền trực tiếp phần cứng (bao gồm ảo hóa I/O gốc đơn cho phép một thiết bị trình bày nhiều chức năng ảo).

Clinical relevance

DMA là nền tảng cho I/O hiệu quả, giải phóng bộ xử lý trong quá trình truyền dữ liệu lớn đến và đi từ các thiết bị lưu trữ và mạng. Ảo hóa I/O là yếu tố thiết yếu đối với điện toán đám mây và các trung tâm dữ liệu, nơi nhiều máy ảo chia sẻ phần cứng vật lý; IOMMU cung cấp sự cô lập giúp việc chia sẻ và gán trực tiếp thiết bị vừa an toàn vừa nhanh chóng.

History

Truy cập bộ nhớ trực tiếp đã được sử dụng từ những máy tính đầu tiên để giảm tải việc di chuyển dữ liệu khỏi bộ xử lý. Khi ảo hóa trở thành trung tâm của các máy chủ và điện toán đám mây vào những năm 2000, các hỗ trợ phần cứng như IOMMU và ảo hóa I/O gốc đơn đã được bổ sung để làm cho việc chia sẻ thiết bị và gán trực tiếp trở nên hiệu quả và an toàn.

Debates

Hiệu suất truyền trực tiếp so với tính linh hoạt
Truyền trực tiếp thiết bị mang lại cho các máy ảo hiệu suất I/O gần như nguyên bản nhưng giảm tính linh hoạt cho việc di chuyển và quá tải, trong khi I/O được mô phỏng hoặc bán ảo hóa linh hoạt hơn nhưng chậm hơn; các nhà thiết kế hệ thống cân bằng những yếu tố này cho khối lượng công việc của họ.

Key figures

  • John L. Hennessy
  • David A. Patterson
  • Abraham Silberschatz

Related topics

Seminal works

  • hennessy2019
  • silberschatz2018

Frequently asked questions

Một IOMMU làm gì?
Một IOMMU dịch các địa chỉ mà các thiết bị sử dụng trong quá trình DMA thành các địa chỉ bộ nhớ vật lý và hạn chế bộ nhớ mà một thiết bị có thể truy cập. Điều này cung cấp sự bảo vệ và cô lập — ngăn chặn một thiết bị hoặc trình điều khiển làm hỏng bộ nhớ tùy ý — và cho phép gán trực tiếp an toàn các thiết bị cho các máy ảo.
Tại sao DMA quan trọng đối với hiệu suất?
Nếu không có DMA, bộ xử lý sẽ phải sao chép mọi từ đến hoặc từ một thiết bị, tiêu tốn chu kỳ và bị đình trệ trong các hoạt động truyền chậm. DMA giảm tải việc di chuyển dữ liệu lớn cho một bộ điều khiển chuyên dụng, cho phép bộ xử lý thực hiện các công việc hữu ích khác và chỉ xử lý một ngắt hoàn thành duy nhất.

Methods for this concept

Related concepts