Không chắc chắn nếu bạn đang hỏi về PCI hoặc PCIe. Bạn đã sử dụng cả hai cụm từ và câu trả lời là khác nhau cho mỗi cụm từ.
Nếu bạn đang nói về một chiếc xe buýt PCI cũ: Câu trả lời là "có". Hội đồng quản trị để hội đồng quản trị DMA là doable. Các bo mạch quay video có thể đưa các khung video DMA trực tiếp vào bộ nhớ cạc đồ hoạ của bạn chẳng hạn.
Trong ví dụ của bạn, thẻ video có thể DMA trực tiếp đến thiết bị lưu trữ. Tuy nhiên, dữ liệu sẽ khá "thô". NIC của bạn sẽ không có khái niệm về một hệ thống tập tin chẳng hạn. Bạn cũng cần đảm bảo rằng bạn có thể lập trình công cụ DMA của NIC để nằm trong giới hạn của thanh ghi bộ điều khiển SATA của bạn. Bạn không muốn đi ra khỏi cuối của BAR!
Nếu bạn đang nói về một chiếc xe buýt PCIe hiện đại: Câu trả lời là "thường không, nhưng nó phụ thuộc". Giao dịch bus ngang hàng là một điều thú vị trong PCI Express Spec. Các thiết bị gốc phức tạp không cần thiết để hỗ trợ nó.
Trong thử nghiệm, DMA ngang hàng sẽ hoạt động, nếu thiết bị của bạn ở phía sau công tắc PCIe (không được cắm trực tiếp vào bo mạch chủ). Tuy nhiên, nếu thiết bị của bạn được kết nối trực tiếp với chipset (Root Complex), DMA ngang hàng sẽ không hoạt động, ngoại trừ một số trường hợp đặc biệt. Trường hợp đặc biệt đáng chú ý nhất sẽ là ví dụ quay video mà tôi đã đề cập trước đó. Các trường hợp đặc biệt được đề cập trong datasheets chipset.
Chúng tôi đã thử nghiệm PCIe DMA ngang hàng với một vài chipset Intel và AMD khác nhau và tìm thấy hành vi nhất quán. Đã không thử nghiệm các thế hệ chipset mới nhất. (Chúng tôi đã thảo luận về việc thiếu sự hỗ trợ PCIe DMA ngang hàng với Intel, không chắc chắn phản hồi của chúng tôi có ảnh hưởng đến bộ phận Kỹ thuật của họ hay không.)
Nguồn
2012-08-01 20:41:17
Bạn đang sử dụng bất kỳ chương trình nào cho điều này? – Jonas
Có. Không có gì được viết ra, nhưng tôi giả định nó sẽ ở C. Tôi chỉ tự hỏi liệu nó có thể giao tiếp trực tiếp như thế không. – mindloss