Bagikan melalui


Menggunakan I/O Langsung

Driver untuk perangkat yang dapat mentransfer data dalam jumlah besar pada satu waktu harus menggunakan I/O langsung untuk transfer tersebut. Menggunakan I/O langsung untuk transfer besar meningkatkan performa driver, baik dengan mengurangi overhead gangguannya maupun dengan menghilangkan alokasi memori dan operasi penyalinan yang melekat pada I/O yang di-buffer.

Umumnya, driver perangkat penyimpanan massal meminta I/O langsung untuk permintaan transfer, termasuk driver tingkat terendah yang menggunakan akses memori langsung (DMA) atau I/O terprogram (PIO), serta driver perantara yang ditautkan di atasnya.

Manajer I/O menentukan bahwa operasi I/O menggunakan I/O langsung sebagai berikut:

Driver yang menggunakan I/O langsung terkadang juga akan menggunakan I/O buffer untuk menangani beberapa RUNP. Secara khusus, driver biasanya menggunakan I/O buffer untuk beberapa kode kontrol I/O untuk permintaan IRP_MJ_DEVICE_CONTROL yang memerlukan transfer data, terlepas dari apakah driver menggunakan I/O langsung untuk operasi baca dan tulis.

Menyiapkan transfer I/O langsung sedikit bervariasi, tergantung pada apakah DMA atau PIO sedang digunakan. Untuk informasi selengkapnya, lihat:

Menggunakan I/O Langsung dengan DMA

Menggunakan I/O Langsung dengan PIO

Driver harus mengambil langkah-langkah untuk menjaga koherensi cache selama transfer DMA dan PIO. Untuk informasi selengkapnya, lihat Mempertahankan Koherensi Cache.