x86 mimarisine sahip makinelerde işlemcinin anladığı iki adres uzayı bulunuyor. Hafıza ve I/O. x86, I/O adresindeki bir PCI cihaza yazma işlemi yapıldığında işlemci devam etmeden, yazma işleminin cihaza eriştiğinden emin olabiliriz. Fakat MMIO adresindeki bir cihaza yazma işlemi yapıldığında işlemci devam ederken, yazmanın cihaza eriştiğinden emin olamayız. PCI cihaza yapılan yazma işlemi bir yerlerde (host bridge’de ya da ikinci bir PCI bus’a giden bir ara bridge’de) bekletiliyor olabilir. Toplu yazma yapılabileceği durumlar için bir tasarruf. Bu işleme “write-posting” deniyor. Eğer işlemcinin bir sonraki yapacağı işlemde cihaza önceki yazma işleminin sonuçlanmış olması gerekliliği var ise, cihaz üzerinde herhangi “etkisiz” bir yerden okuma yapılabilir. Tüm bridge’ler okuma işlemi öncesi bekletilen yazma işlemlerini tamamlıyor. Bir nevi, buffer “flush” ediliyor.

Bunlar sürücü açısından baktığımız zaman bildiğimiz şeyler. Ama ilginç olan bir şey var ki, cihaz açısından baktığımızda garip bir durum ortaya çıkıyor. Herhangi bir cihaz, hafızada bir yere yazma işlemini bitirdikten sonra işlemciye bir interrupt göndererek bunun haberini verdiğini düşünelim. İşte burada öyle bir durum olabilir ki interrupt işlemciye, veriler hafızaya ulaşmadan erişebilir. İlginç… Bunu engellemek için PCI speklerinde üç yöntemden bahsediliyor:

1. Sistem donanımı “write-posting” yapılan bufferları, cihaz’ın interruptı işlemciye ulaşmadan önce flush edebilir. Yani donanımsal olarak yazmalar izlenerek interrupt görüldüğünde yazmaların ulaştığını donanım garantileyecek.
2. Cihaz yazma işleminin hemen ardından yazdığı veriyi okur ve ardından interrupt gönderir.
3. Sürücü interrupt geldikten sonra cihazın üzerindeki bir yazmacı okur ve ardından cihazın yazdığı veriye erişir.