Önbellekleme bunlardan bazılarına neden olurken, tek faktör bu değildir. Önbellekleme tek faktör olsaydı, yazma hızının birkaç yüz MB / sn'den sürücünün gerçek yazma hızına çok hızlı bir şekilde düşmesini ve yazının geri kalanı için orada kalmasını beklerdik. Ancak, diske ve diske büyük transferler yaparken gözlemlediğim şey bu değil (örneğin, önyükleme görüntüleri yazma). Bunun yerine gözlemlediğim şey, hızın tüm işlem boyunca giderek azaldığı.
Bu yavaşlama, bazı blokların bir kereden fazla yazılmasını gerektiren verileri depolamak için kullanılan flaş çipindeki veri miktarından kaynaklanmaktadır.
Bir flaş çipinde, üzerine yazılabilecek bir veri bloğu vardır. Yazarken, bilgisayarın yapabileceği yalnızca iki şey vardır: bir bloğun tamamını silebilir veya bir bloktaki bitlerin bir kısmını (veya tümünü) 0'dan 1'e değiştirebilir.
Ancak, bu blokların bazıları diğerlerinden daha iyidir, özellikle düşük kaliteli flash sürücülerde ve sonuç olarak yeni veriler yazarken, bazı bitler yazıldıktan hemen sonra kendi başlarına 0 durumuna dönebilir ve değişmedi. Bu nedenle, bir bloğa yazarken, işletim sisteminin tüm verilerin doğru yazıldığından emin olmak için kontrol etmesi gerekir ve aynı veriyi aynı bloğa iki veya üç kez yazarak bloğu yeniden yapmak zorunda değilse veri yapışana kadar.
Bu nedenle, bilgisayarınız flash sürücüye bir sürü veri yazarken, bunun nasıl yapılacağına ilişkin bir açıklama (tamamen doğru değil, ancak yeterince iyi):
- Yazılacak ilk blok dizisini alın ve hepsini yazın.
- Yeni yazdığımız tüm blokları tekrar oku ve uyuşmayanların bir listesini yap.
- Bir sonraki blok kümesini ve en son doğru yazılmayanları yazın.
- Tüm bloklar doğru yazılana kadar 2-3'ü tekrarlayın.
Bilgisayar sürücüye yazarken, sürücüye ilk defa blok yazma hızını bildirir. Aynı zamanda önceki blokları aynı anda yeniden yazmak zorunda kalacağından, bakire bloklar için kullanılabilecek toplam verimlilik, aynı zamanda gerçekleşmesi gereken yeniden yazma sayısı arttıkça düşer. Böylece, görünen yazma hızı zamanla azalır.