Tembolok (komputer)

komponen komputasi yang menyimpan data secara transparan sehingga permintaan di masa mendatang untuk data tersebut dapat dilayani lebih cepat
Revisi sejak 17 September 2021 06.28 oleh 182.0.182.40 (bicara)

Tembolok atau memori singgahan (Inggris: cache) adalah komponen perangkat keras atau perangkat lunak yang menyimpan data sehingga permintaan di masa mendatang untuk data tersebut dapat dilayani lebih cepat; data yang disimpan dalam mungkin merupakan hasil dari penghitungan sebelumnya atau salinan data yang disimpan di tempat lain. Sebuah cache hit terjadi ketika data yang diminta dapat ditemukan di tembolok, sementara cache miss terjadi jika tidak bisa. Cache hit disajikan dengan membaca data dari tembolok, yang lebih cepat daripada menghitung ulang hasil atau membaca dari penyimpanan data yang lebih lambat; dengan demikian, semakin banyak permintaan yang dapat dilayani dari tembolok, semakin cepat kinerja sistem.

Diagram operasi tembolok memori CPU

Agar hemat biaya dan memungkinkan penggunaan data yang efisien, tembolok harus relatif kecil. Namun demikian, tembolok telah membuktikan dirinya di banyak area komputasi, karena aplikasi komputer biasa mengakses data dengan tingkat lokalitas referensi yang tinggi. Pola akses tersebut menunjukkan lokalitas temporal, di mana data yang diminta telah diminta baru-baru ini, dan lokalitas spasial, di mana data yang diminta disimpan secara fisik dekat dengan data yang telah diminta.

Tembolok perangkat lunak

Tembolok disk

Sementara tembolok CPU umumnya dikelola sepenuhnya oleh perangkat keras, berbagai perangkat lunak mengelola tembolok lainnya. Tembolok halaman di memori utama, yang merupakan contoh tembolok disk, dikelola oleh kernel sistem operasi.

Meskipun buffer disk, yang merupakan bagian terintegrasi dari hard disk drive, terkadang secara salah disebut sebagai "cache disk", fungsi utamanya adalah menulis urutan dan membaca prefetching. Hit cache berulang relatif jarang, karena ukuran buffer yang kecil dibandingkan dengan kapasitas drive. Namun, pengontrol disk kelas atas sering kali memiliki tembolok terpasang sendiri dari blok data drive hard disk.

Terakhir, drive hard disk lokal yang cepat juga dapat menyimpan informasi dalam tembolok pada perangkat penyimpanan data yang lebih lambat, seperti server jarak jauh (tembolok web) atau tape drive lokal atau jukebox optik; skema seperti itu adalah konsep utama manajemen penyimpanan hierarkis. Selain itu, solid-state drive (SSD) berbasis flash cepat dapat digunakan sebagai tembolok untuk drive hard disk media rotasi yang lebih lambat, yang berfungsi bersama sebagai hybrid drive atau solid-state hybrid drive (SSHD).

Tembolok Web

Peramban web dan server proxy web menggunakan peramban web untuk menyimpan respons sebelumnya dari server web, seperti halaman web dan gambar. Tembolok web mengurangi jumlah informasi yang perlu dikirim ke seluruh jaringan, karena informasi yang sebelumnya disimpan dalam tembolok sering kali dapat digunakan kembali. Ini mengurangi bandwidth dan persyaratan pemrosesan server web, dan membantu meningkatkan daya tanggap bagi pengguna web.[1]

Peramban web menggunakan tembolok web internal, tetapi beberapa penyedia layanan Internet (ISP) atau organisasi juga menggunakan tembolok server proxy, yang merupakan tembolok web yang digunakan bersama di antara semua pengguna jaringan itu.

Bentuk lain dari tembolok adalah P2P caching, di mana file yang paling dicari oleh aplikasi peer-to-peer disimpan dalam tembolok ISP untuk mempercepat transfer P2P. Demikian pula, ada padanan desentralisasi, yang memungkinkan komunitas untuk melakukan tugas yang sama untuk lalu lintas P2P, misalnya, Corelli.[2]

Memoisasi

Tembolok dapat menyimpan data yang dihitung sesuai permintaan daripada diambil dari penyimpanan pendukung. Memoization adalah teknik pengoptimalan yang menyimpan hasil panggilan fungsi yang menghabiskan sumber daya dalam tabel pencarian, memungkinkan panggilan berikutnya untuk menggunakan kembali hasil yang disimpan dan menghindari komputasi berulang. Ini terkait dengan metodologi desain algoritma pemrograman dinamis, yang juga dapat dianggap sebagai alat caching.

Tembolok lainnya

Daemon DNS BIND membuat tembolok pemetaan nama domain ke alamat IP, seperti halnya pustaka resolver.

Operasi tulis-tayang umum terjadi saat beroperasi pada jaringan yang tidak dapat diandalkan (seperti LAN Ethernet), karena kerumitan protokol koherensi yang sangat besar yang diperlukan antara beberapa tembolok tulis-balik saat komunikasi tidak dapat diandalkan. Misalnya, tembolok halaman web dan tembolok sistem berkas jaringan client-side (seperti yang ada di NFS atau SMB) biasanya hanya dapat dibaca atau ditulis secara khusus untuk menjaga protokol jaringan tetap sederhana dan dapat diandalkan.

Mesin pencari juga sering membuat halaman web yang telah mereka indeks tersedia dari tembolok mereka. Misalnya, Google menyediakan link "Cache" di samping setiap hasil pencarian. Ini terbukti berguna ketika halaman web dari server web tidak dapat diakses untuk sementara atau selamanya.

Jenis caching lainnya adalah menyimpan hasil yang dihitung yang kemungkinan akan dibutuhkan lagi, atau memoization. Sebagai contoh, ccache adalah program yang menyimpan keluaran kompilasi, untuk mempercepat proses kompilasi nanti.

Database caching dapat secara substansial meningkatkan lewatan aplikasi database, misalnya dalam pemrosesan indeks, kamus data, dan subset data yang sering digunakan.

Sebuah distributed cache[3] menggunakan host jaringan untuk memberikan skalabilitas, keandalan, dan kinerja untuk aplikasi.[4] Host dapat ditempatkan bersama atau tersebar di berbagai wilayah geografis.

Buffer vs. Tembolok

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.

Lihat pula

Refrensi

  1. ^ Multiple (wiki). "Web application caching". Docforge. Diarsipkan dari versi asli tanggal 2019-12-12. Diakses tanggal 2013-07-24. 
  2. ^ Gareth Tyson; Andreas Mauthe; Sebastian Kaune; Mu Mu; Thomas Plagemann. Corelli: A Dynamic Replication Service for Supporting Latency-Dependent Content in Community Networks (PDF). MMCN'09. Diarsipkan dari versi asli (PDF) tanggal 2015-06-18. 
  3. ^ Paul, S; Z Fei (1 February 2001). "Distributed caching with centralized control". Computer Communications. 24 (2): 256–268. CiteSeerX 10.1.1.38.1094 . doi:10.1016/S0140-3664(00)00322-4. 
  4. ^ Khan, Iqbal (July 2009). "Distributed Caching on the Path To Scalability". MSDN. 24 (7). 

Bacaan lanjutan