Rabu, 18 Mei 2016

cache

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

Posting Lebih Baru Posting Lama Beranda

 

Followers

 

Templates by Nano Yulianto | CSS3 by David Walsh | Powered by {N}Code & Blogger