3. Cache
Dalam komputasi , cache adalah komponen yang menyimpan data
permintaan sehingga masa depan untuk data yang dapat dilayani lebih cepat;
data yang disimpan dalam cache mungkin hasil dari
perhitungan sebelumnya, atau duplikat data disimpan di tempat lain. Sebuah cache hit terjadi ketika data yang diminta
dapat ditemukan dalam cache, sementara cache miss terjadi ketika itu
tidak bisa. Cache hit dilayani dengan membaca
data dari cache, yang lebih cepat dari recomputing hasilnya atau membaca dari
toko data yang lebih lambat; dengan demikian,
semakin banyak permintaan dapat dilayani dari cache, semakin cepat sistem
melakukan.
Untuk
biaya-efektif dan untuk memungkinkan penggunaan data yang efisien, cache yang
relatif kecil. Namun demikian, cache telah
membuktikan dirinya dalam berbagai bidang komputasi karena pola akses di khas aplikasi
komputer memamerkan lokalitas referensi . Selain itu, pola akses
menunjukkan lokalitas temporal jika data diminta
lagi yang telah baru-baru ini diminta sudah, sementara wilayah spasial mengacu pada permintaan data secara fisik disimpan dekat
dengan data yang telah sudah diminta.
Operasi
Hardware
mengimplementasikan Cache sebagai blok memori
untuk penyimpanan sementara data mungkin untuk digunakan lagi. Unit
Central processing (CPU) dan hard disk drive (HDD) sering menggunakan cache, seperti halnya web browser
dan web server.
Cache
terdiri dari kolam entri. Setiap entri telah
dikaitkan data, yang merupakan salinan dari data yang sama di beberapa toko
dukungan. Setiap entri juga memiliki tag,
yang menentukan identitas data di toko dukungan yang masuk adalah salinan.
Ketika
klien cache (CPU, web browser, sistem operasi )
perlu mengakses data dianggap ada di toko backing, pertama kali memeriksa
cache. Jika entri dapat ditemukan dengan tag
yang cocok dengan data yang diinginkan, data dalam entri digunakan sebagai
gantinya. Situasi ini dikenal sebagai cache
hit. Jadi, misalnya, program web browser
yang mungkin memeriksa cache lokal pada disk untuk melihat apakah ia memiliki
salinan lokal dari isi halaman web pada URL tertentu. Dalam contoh ini, URL adalah tag, dan isi dari halaman web
adalah data. Persentase akses yang menghasilkan
hits cache dikenal sebagai hit rate atau memukul rasio cache.
Situasi
alternatif, ketika cache dikonsultasikan dan ditemukan tidak berisi data dengan
tag yang diinginkan, telah menjadi dikenal sebagai cache miss. Data sebelumnya uncached diambil dari toko dukungan selama
penanganan lewatkan biasanya disalin ke dalam cache, siap untuk akses
berikutnya.
Selama
cache miss, CPU biasanya menyemburkan beberapa entri lain untuk membuat ruang
untuk data sebelumnya uncached. The heuristik digunakan untuk memilih entri untuk mengeluarkan dikenal
sebagai kebijakan penggantian . Salah satu kebijakan penggantian populer, "paling
terakhir digunakan" (LRU), menggantikan entri paling terakhir digunakan
(lihat algoritma Cache ). Cache lebih efisien menghitung frekuensi penggunaan terhadap
ukuran isi yang tersimpan, serta latency dan throughputs
baik untuk cache dan toko dukungan. Ini bekerja
dengan baik untuk sejumlah besar data, latency panjang dan throughputs lambat,
seperti yang dialami dengan hard drive dan Internet, tetapi tidak efisien untuk
digunakan dengan cache CPU.
CPU Cache
Kenangan
kecil pada atau dekat dengan CPU dapat
beroperasi lebih cepat dari yang jauh lebih besar memori utama . Kebanyakan CPU sejak
1980-an telah menggunakan satu atau lebih cache, kadang-kadang di
tingkat mengalir ; modern
yang high-end tertanam, desktop dan server mikroprosesor dapat memiliki sebanyak enam, masing-masing khusus untuk
fungsi tertentu. Contoh cache dengan fungsi
tertentu adalah D-cache dan I-Cache (cache data dan cache instruksi).
GPU Cache
Sebelumnya
graphics processing unit (GPU) tidak memiliki
cache hardware yang dikelola; Namun, sebagai GPU
bergerak menuju tujuan umum komputasi ( GPGPU ),
mereka telah diperkenalkan dan digunakan cache semakin besar. Misalnya, GT200 GPU arsitektur tidak memiliki cache L2, sedangkan Fermi GPU memiliki 768 KB dari lalu-tingkat Cache, yang Kepler GPU memiliki 1536 KB cache lalu-tingkat, dan Maxwell
GPU memiliki 2048 KB cache lalu-tingkat.
Lookaside terjemahan penyangga
Sebuah unit manajemen memori (MMU) yang mengambil entri tabel halaman dari memori utama memiliki cache khusus, digunakan untuk merekam hasil alamat virtual ke alamat fisik terjemahan. Cache khusus ini disebut terjemahan lookaside penyangga (TLB).
Disk Cache
Sementara
cache CPU umumnya dikelola sepenuhnya oleh hardware, berbagai software
mengelola cache lainnya. The cache
halaman dalam memori utama, yang merupakan contoh dari
disk cache, dikelola oleh sistem operasi kernel
.
Sementara
disk buffer , yang merupakan bagian terintegrasi
dari hard disk drive, kadang-kadang menyesatkan disebut sebagai "hard disk
cache", fungsi utamanya adalah menulis sequencing dan membaca prefetching.
Diulang hit cache relatif jarang, karena ukuran kecil
dari buffer dibandingkan dengan kapasitas drive. Namun, high-end kontroler disk
sering memiliki cache sendiri on-board dari hard disk drive blok data .
Akhirnya,
lokal hard disk drive cepat juga dapat cache informasi diadakan data perangkat
penyimpanan lebih lambat, seperti server remote ( web cache ) atau lokal tape drive atau jukebox
optik ; skema tersebut
adalah konsep utama manajemen penyimpanan hirarkis . Juga, cepat berbasis flash solid-state
drive (SSD) dapat digunakan sebagai cache untuk
rotasi-media hard disk drive lebih lambat, bekerja sama sebagai drive
hybrid atau hibrida solid-state drive (SSHDs).
Web Cache
Web browser dan server proxy web
menggunakan cache web untuk menyimpan tanggapan sebelumnya dari server
web , seperti halaman web dan gambar . cache web mengurangi jumlah informasi yang perlu
ditransmisikan melalui jaringan, sebagai informasi yang sebelumnya disimpan
dalam cache sering dapat digunakan kembali. Hal
ini akan mengurangi bandwidth dan pengolahan persyaratan web server, dan
membantu untuk meningkatkan respon bagi pengguna
web.
Web
browser menggunakan cache web built-in, tetapi beberapa penyedia layanan
internet atau organisasi juga menggunakan server
caching proxy, yang merupakan web cache yang dibagi di antara semua pengguna
jaringan itu.
Bentuk
lain dari cache P2P caching , di mana file
paling dicari oleh peer-to-peer aplikasi yang
disimpan dalam sebuah ISP tembolok untuk mempercepat
transfer P2P. Demikian pula, setara
desentralisasi ada, yang memungkinkan masyarakat untuk melakukan tugas yang
sama untuk lalu lintas P2P, misalnya, Corelli.
Memoisasi
Cache
dapat menyimpan data yang dihitung pada permintaan daripada diambil dari toko
dukungan. Memoisasi adalah optimasi teknik yang menyimpan hasil sumber daya memakan panggilan
fungsi dalam tabel pencarian, yang memungkinkan
panggilan berikutnya untuk menggunakan kembali hasil disimpan dan menghindari
perhitungan diulang .
Cache lainnya
The BIND
DNS daemon cache pemetaan nama domain ke alamat
IP , seperti halnya perpustakaan resolver.
Menulis-melalui
operasi adalah umum saat mengoperasikan melalui jaringan tidak dapat diandalkan
(seperti LAN Ethernet), karena kompleksitas yang sangat besar dari protokol
koherensi diperlukan antara beberapa cache write-back
ketika komunikasi tidak dapat diandalkan. Misalnya,
cache halaman web dan client-side sistem
file jaringan cache (seperti di NFS atau SMB ) biasanya read-only
atau menulis-melalui khusus untuk menjaga protokol jaringan yang sederhana dan
dapat diandalkan.
Search engine juga sering membuat halaman web mereka telah diindeks tersedia dari cache mereka. Misalnya, Google menyediakan
"Cached" link di sebelah setiap hasil pencarian. Hal ini dapat membuktikan berguna ketika halaman web dari web
server yang sementara atau permanen tidak dapat
diakses.
Tipe
lain dari caching menyimpan hasil computed yang kemungkinan akan dibutuhkan
lagi, atau memoization . Misalnya, ccache adalah program
yang cache output dari kompilasi, untuk mempercepat kemudian kompilasi
berjalan.
Database caching secara substansial dapat meningkatkan throughput basis
data aplikasi, misalnya dalam pengolahan indeks , kamus data yang , dan
himpunan bagian sering digunakan data.
Sebuah cache
didistribusikan menggunakan host jaringan untuk
menyediakan skalabilitas, keandalan dan kinerja untuk aplikasi. Host dapat
co-terletak atau tersebar di wilayah geografis yang berbeda.
Buffer vs Cache
Semantik
dari "buffer" dan "cache" belum tentu saling eksklusif;
meskipun demikian, ada perbedaan mendasar dalam maksud
antara proses caching dan proses buffering.
Pada
dasarnya, caching menyadari peningkatan kinerja untuk transfer data yang sedang
berulang kali ditransfer. Sementara sistem
caching mungkin menyadari peningkatan kinerja pada awal (biasanya menulis)
transfer item data, peningkatan kinerja ini karena buffering yang terjadi di
dalam sistem caching.
Dengan
cache membaca, item data harus telah diambil dari lokasi yang berada setidaknya
sekali dalam rangka untuk selanjutnya dibaca dari item data untuk mewujudkan
peningkatan kinerja berdasarkan mampu harus diambil dari (lebih cepat)
penyimpanan menengah cache daripada data ini berada lokasi. Dengan menulis cache, peningkatan kinerja menulis item data
dapat terealisasi pada saat menulis pertama dari item data berdasarkan item
data segera disimpan dalam penyimpanan menengah cache ini, menunda transfer
item data untuk penyimpanan yang berada di tahap berikutnya atau terjadi sebagai
proses latar belakang. Bertentangan dengan
penyangga yang ketat, proses caching harus mematuhi (didistribusikan
berpotensi) Cache protokol koherensi dalam rangka menjaga konsistensi antara
penyimpanan menengah cache dan lokasi di mana data berada. Buffering, di sisi lain,
- mengurangi jumlah transfer data dinyatakan Novel antara proses berkomunikasi, yang amortizes overhead yang terlibat selama beberapa transfer kecil lebih sedikit, transfer yang lebih besar,
- memberikan perantara proses yang tidak mampu transfer langsung antara satu sama lain berkomunikasi, atau
- memastikan data ukuran minimum atau representasi yang dibutuhkan oleh setidaknya salah satu proses berkomunikasi yang terlibat dalam transfer.
Dengan
implementasi caching khas, item data yang dibaca atau ditulis untuk pertama
kalinya secara efektif sedang buffered; dan
dalam kasus menulis, sebagian besar mewujudkan peningkatan kinerja untuk
aplikasi dari mana menulis berasal. Selain itu,
bagian dari protokol caching mana menulis individual ditangguhkan untuk batch
menulis adalah bentuk buffering. Bagian dari
protokol caching dimana individu membaca ditangguhkan untuk batch membaca juga
merupakan bentuk buffering, meskipun bentuk ini dapat berdampak negatif
terhadap kinerja setidaknya awal membaca (meskipun mungkin berdampak positif
kinerja jumlah individu dibaca). Dalam
prakteknya, caching hampir selalu melibatkan beberapa bentuk buffering,
sementara penyangga yang ketat tidak melibatkan caching.
Sebuah penyangga adalah lokasi memori sementara yang secara tradisional
digunakan karena CPU petunjuk tidak bisa
langsung menangani data yang disimpan dalam perangkat periferal. Dengan demikian, memori beralamat digunakan sebagai tahap
peralihan. Selain itu, penyangga seperti mungkin
layak ketika sebuah blok besar data dirakit atau dibongkar (seperti yang
dipersyaratkan oleh perangkat penyimpanan), atau ketika data dapat disampaikan
dalam urutan yang berbeda dari yang di mana ia diproduksi. Juga, seluruh penyangga data biasanya ditransfer secara berurutan
(misalnya untuk hard disk), sehingga penyangga itu sendiri kadang-kadang
meningkatkan kinerja transfer atau mengurangi variasi atau jitter dari latency
transfer yang bertentangan dengan caching di mana tujuannya adalah untuk
mengurangi latency. Manfaat ini hadir bahkan
jika data buffer ditulis ke penyangga sekali dan
membaca dari buffer sekali.
Cache
juga meningkatkan kinerja transfer. Sebuah
bagian dari peningkatan sama berasal dari kemungkinan bahwa beberapa transfer
kecil akan menggabungkan menjadi satu blok besar. Tetapi yang utama kinerja-gain terjadi karena ada kesempatan
baik bahwa data yang sama akan dibaca dari cache beberapa kali, atau bahwa data
tertulis akan segera dibaca. Satu-satunya tujuan
Cache adalah untuk mengurangi akses ke penyimpanan lambat yang mendasari.
Cache juga biasanya lapisan abstraksi yang dirancang untuk tidak terlihat dari perspektif lapisan
tetangga.











0 komentar:
Posting Komentar