Coba jelasin Buffer vs. tembolok dari Tembolok (komputer) dong

Semantik dari "buffer" dan "tembolok" tidak jauh berbeda; meski begitu, ada perbedaan mendasar dalam maksud antara proses caching dan proses buffering.

Pada dasarnya, caching menyadari peningkatan kinerja untuk transfer data yang sedang ditransfer berulang kali. Sementara sistem caching mungkin menyadari peningkatan kinerja pada transfer awal (biasanya menulis) item data, peningkatan kinerja ini disebabkan oleh buffering yang terjadi dalam sistem caching.

Dengan tembolok baca, item data harus telah diambil dari lokasi penyimpanannya setidaknya satu kali agar item data dapat dibaca berikutnya untuk mewujudkan peningkatan kinerja karena dapat diambil dari penyimpanan perantara tembolok (lebih cepat) daripada lokasi penyimpanan data. Dengan tembolok tulis, peningkatan kinerja penulisan item data dapat direalisasikan pada penulisan pertama item data berdasarkan item data segera disimpan dalam penyimpanan perantara tembolok, menunda transfer item data ke penyimpanannya yang berada di tahap selanjutnya atau terjadi sebagai proses latar belakang. Berlawanan dengan buffering yang ketat, proses caching harus mematuhi protokol koherensi tembolok (berpotensi didistribusikan) untuk menjaga konsistensi antara penyimpanan perantara tembolok dan lokasi tempat data berada. Buffering, di sisi lain,

mengurangi jumlah transfer untuk data baru lainnya di antara proses komunikasi, yang mengamortisasi overhead yang terlibat untuk beberapa transfer kecil melalui transfer yang lebih sedikit dan lebih besar,

menyediakan perantara untuk mengkomunikasikan proses yang tidak mampu melakukan transfer langsung antara satu sama lain, atau

memastikan ukuran atau representasi data minimum yang diperlukan oleh setidaknya salah satu proses komunikasi yang terlibat dalam transfer.

Dengan implementasi caching yang khas, item data yang dibaca atau ditulis untuk pertama kali secara efektif di-buffer; dan dalam kasus penulisan, sebagian besar mewujudkan peningkatan kinerja untuk aplikasi tempat penulisan berasal. Selain itu, bagian dari protokol caching tempat penulisan individual ditangguhkan ke sekumpulan penulisan adalah bentuk buffering.

Sebuah buffer adalah lokasi memori sementara yang secara tradisional digunakan karena instruksi CPU tidak dapat secara langsung menangani data yang disimpan di perangkat periferal. Dengan demikian, memori yang dapat dialamatkan digunakan sebagai tahap perantara. Selain itu, penyangga seperti itu mungkin dapat dilakukan ketika blok data yang besar dirakit atau dibongkar (seperti yang disyaratkan oleh perangkat penyimpanan), atau ketika data dapat dikirimkan dalam urutan yang berbeda dari yang dihasilkannya. Selain itu, seluruh buffer data biasanya ditransfer secara berurutan (misalnya ke hard disk), sehingga buffering itu sendiri terkadang meningkatkan performa transfer atau mengurangi variasi atau jitter dari latensi transfer dibandingkan dengan caching yang tujuannya adalah untuk mengurangi latensi. Manfaat ini ada bahkan jika data yang di-buffer ditulis ke buffer sekali dan dibaca dari buffer sekali.

Sebuah tembolok juga meningkatkan kinerja transfer. Sebagian dari peningkatan tersebut juga berasal dari kemungkinan bahwa beberapa transfer kecil akan digabungkan menjadi satu blok besar. Tetapi peningkatan kinerja utama terjadi karena ada kemungkinan besar bahwa data yang sama akan dibaca dari tembolok beberapa kali, atau bahwa data tertulis akan segera dibaca. Satu-satunya tujuan tembolok adalah untuk mengurangi akses ke penyimpanan yang lebih lambat. Tembolok juga biasanya merupakan lapisan abstraksi yang dirancang agar tidak terlihat dari perspektif lapisan tetangga.