Langsung ke konten

Arsip

MMIO

3 artikel
Teknologi 19 Sep 2026 5 min read

Write MMIO Posted PCIe Dapat Bertahan Setelah Store CPU Selesai

CPU dapat menyelesaikan store MMIO sebelum PCIe Memory Write yang terkait mencapai perangkat target. Jarak ini muncul karena request PCIe Memory Write bersifat posted: requester mengirimkannya tanpa menunggu paket completion dari completer. Sifat tersebut membantu throughput, tetapi juga membentuk batas penting. Store instruction yang telah selesai dari sisi software, ordering barrier, dan pengamatan write oleh perangkat bukan otomatis merupakan event yang sama. PCIe Memory Write adalah transaksi posted PCIe mengklasifikasikan Memory Write sebagai posted request. Posted request tidak memiliki Completion TLP normal yang kembali untuk menyatakan keberhasilan kepada requester. Setelah host bridge menerima write MMIO dari CPU, transaksi dapat terus bergerak melalui buffer dan tahap interconnect meski prosesor sudah melanjutkan eksekusi.

Teknologi 19 Sep 2026 6 min read

PCIe Posted Write Memisahkan Penyelesaian CPU dari Visibilitas Perangkat

PCIe Posted Write Memisahkan Penyelesaian CPU dari Visibilitas Perangkat Sebuah MMIO store dapat selesai dari sudut pandang CPU ketika write terkait masih bergerak melalui jalur I/O. PCI dan PCIe memory write umumnya bersifat posted: requester tidak menunggu completion response untuk setiap write. Bridge dan logika interconnect dapat menerima transaction lalu membiarkan CPU melanjutkan eksekusi sebelum endpoint mengonsumsinya. Perilaku ini berguna untuk throughput, tetapi menciptakan boundary yang tidak dapat diperlakukan driver seperti memori cache biasa. Program order pada CPU, ordering yang diberikan accessor MMIO, dan bukti bahwa perangkat telah menerima write merupakan properti yang saling berkaitan, tetapi tidak dapat saling menggantikan.

Teknologi 19 Sep 2026 4 min read

Memori Perangkat Write-Combining Dapat Menggabungkan Store CPU Sebelum I/O

Memori Perangkat Write-Combining Dapat Menggabungkan Store CPU Sebelum I/O Serangkaian store CPU ke memori perangkat tidak selalu berubah menjadi rangkaian transaksi bus yang identik. Pada mapping write-combining, prosesor dapat menampung store yang berdekatan lalu mengirimkannya sebagai transfer yang lebih besar. Perilaku ini cocok untuk framebuffer dan region perangkat lain yang dirancang menerima penulisan blok, tetapi asumsi tentang ordering dan bentuk transaksi menjadi lebih terbatas. Linux menyediakan kelas mapping ini melalui antarmuka seperti ioremap_wc(). Semantiknya berbeda dari mapping ioremap() default yang digunakan untuk control register biasa.