Tembolok (komputer): Perbedaan antara revisi
Konten dihapus Konten ditambahkan
Tidak ada ringkasan suntingan Tag: Dikembalikan Menghilangkan referensi VisualEditor Suntingan perangkat seluler Suntingan peramban seluler |
perbaikan panggilan templat salah: "Cat main" -> "Main" | t=592 su=54 in=70 at=54 -- only 19 edits left of totally 74 possible edits | edr=000-0001(!!!) ovr=010-1111 aft=000-0001 |
||
(11 revisi perantara oleh 9 pengguna tidak ditampilkan) | |||
Baris 1:
{{terjemah}}
[[Berkas:Cache,basic.svg|bingkai|Diagram operasi tembolok memori CPU]]
'''Tembolok''' atau '''memori singgahan''' ({{Lang-en|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.
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 piranti lunak|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 [[Alamat memori|spasial]], di mana data yang diminta disimpan secara fisik dekat dengan data yang telah diminta.
== Motivasi ==
Ada trade-off yang melekat antara ukuran dan kecepatan (mengingat bahwa sumber daya yang lebih besar menyiratkan jarak fisik yang lebih jauh) tetapi juga tradeoff antara mahal, teknologi premium (seperti [[SRAM]]) vs lebih murah, komoditas yang mudah diproduksi secara massal (seperti [[DRAM]] atau [[hard disk]]).
Buffering yang disediakan oleh tembolok menguntungkan baik latensi maupun [[throughput]] ([[bandwidth]]):
=== Latensi ===
Sumber daya yang lebih besar menimbulkan latensi yang signifikan untuk akses - mis. dibutuhkan ratusan siklus clock untuk prosesor 4
=== Lewatan ===
Penggunaan tembolok juga memungkinkan melewati yang lebih tinggi dari sumber daya yang mendasarinya, dengan menggabungkan beberapa butiran halus transfer menjadi permintaan yang lebih besar dan lebih efisien. Dalam kasus sirkuit [[DRAM]], ini dapat dilayani dengan memiliki bus data yang lebih luas. Misalnya, pertimbangkan sebuah program yang mengakses bita dalam [[ruang alamat]] 32-bit, tetapi dilayani oleh bus data off-chip 128-bit; akses bita individu yang tidak di-cache hanya akan memungkinkan 1/16 dari total bandwidth yang akan digunakan, dan 80% dari pergerakan data akan menjadi alamat memori, bukan data itu sendiri. Membaca potongan yang lebih besar mengurangi sebagian kecil dari bandwidth yang diperlukan untuk mentransmisikan informasi alamat.
== Operasi ==
Perangkat keras mengimplementasikan tembolok sebagai [[Block (penyimpanan data)|blok]] memori untuk penyimpanan sementara data yang kemungkinan besar akan digunakan lagi. [[Unit Pemroses Sentral|Unit pemrosesan sentral]] uq) dan [[hard disk drive]] (HDD) sering menggunakan tembolok, seperti halnya peramban web dan server web.
Tembolok terdiri dari kumpulan entri. Setiap entri memiliki ''data'' terkait, yang merupakan salinan dari data yang sama di beberapa ''penyimpanan cadangan''. Setiap entri juga memiliki ''tag'', yang menentukan identitas data di penyimpanan pendukung di mana entri tersebut adalah salinannya. Pemberian tag memungkinkan algoritme berorientasi tembolok simultan berfungsi dalam mode berlapis-lapis tanpa gangguan relai diferensial.
Ketika klien tembolok (CPU, peramban web, [[sistem operasi]]) perlu mengakses data yang dianggap ada di penyimpanan cadangan, tembolok terlebih dahulu diperiksa. Jika entri dapat ditemukan dengan tag yang cocok dengan data yang diinginkan, data dalam entri yang digunakan. Situasi ini dikenal sebagai cache hit. Misalnya, program peramban web mungkin memeriksa tembolok lokalnya pada disk untuk melihat apakah program tersebut memiliki salinan lokal dari konten halaman web di [[URL]] tertentu. Dalam contoh ini, URL adalah tag, dan konten halaman web adalah datanya. Persentase akses yang menghasilkan klik tembolok dikenal sebagai '''hit rate''' atau '''hit ratio''' tembolok.
Situasi alternatif, ketika tembolok diperiksa dan ditemukan tidak berisi entri apa pun dengan tag yang diinginkan, disebut cache miss. Ini membutuhkan akses data yang lebih mahal dari penyimpanan pendukung. Setelah data yang diminta diambil, biasanya data tersebut disalin ke dalam tembolok, siap untuk akses berikutnya.
[[Berkas:Write-through_with_no-write-allocation.svg|ka|jmpl|Sebuah tembolok tulis-melewati dengan alokasi tanpa-tulis]]
[[Berkas:Write-back_with_write-allocation.svg|ka|jmpl|Sebuah tembolok tulis-kembali dengan alokasi tulis]]
=== Kebijakan penulisan ===
{{Main|Koherensi tembolok}}Ketika sistem menulis data ke tembolok, pada titik tertentu ia harus menulis data itu ke penyimpanan cadangan juga. Waktu penulisan ini dikendalikan oleh apa yang dikenal sebagai ''write policy''. Ada dua pendekatan menulis dasar:<ref>{{Cite web|last=Bottomley|first=James|date=2004-01-01|title=Understanding Caching|url=https://www.linuxjournal.com/article/7105|website=Linux Journal|access-date=2019-10-01}}</ref>
Baris 38 ⟶ 42:
* ''Write allocate'' (disebut juga ''fetch on write''): data di lokasi tulis yang terlewat dimuat ke tembolok, diikuti dengan operasi tulis hit. Dalam pendekatan ini, kesalahan tulis mirip dengan kesalahan membaca.
* ''No-write allocate'' (disebut juga ''write-no-allocate'' or ''write around''): data di lokasi penulisan yang terlewat tidak dimuat ke tembolok, dan ditulis langsung ke penyimpanan pendukung. Dalam pendekatan ini, data dimuat ke tembolok pada read miss only.
Kebijakan write-through dan write-back dapat menggunakan salah satu dari kebijakan write-miss ini, tetapi biasanya keduanya dipasangkan dengan cara ini:<ref name="HennessyPatterson20112">{{cite book|author1=John L. Hennessy|author2=David A. Patterson|year=2011|url=https://books.google.com/books?id=v3-1hVwHnHwC&pg=SL2-PA12|title=Computer Architecture: A Quantitative Approach|publisher=Elsevier|isbn=978-0-12-383872-8|pages=B–12}}</ref>
* Tembolok ''write-back'' menggunakan alokasi tulis, berharap untuk penulisan berikutnya (atau bahkan membaca) ke lokasi yang sama, yang sekarang disimpan dalam tembolok.
* Tembolok write-through menggunakan alokasi no-write. Di sini, penulisan selanjutnya tidak memiliki keuntungan, karena masih perlu ditulis langsung ke penyimpanan pendukung.
Entitas selain tembolok dapat mengubah data di penyimpanan cadangan, dalam hal ini salinan dalam tembolok mungkin menjadi kedaluwarsa atau ''basi''. Alternatifnya, saat klien memperbarui data di tembolok, salinan data tersebut di tembolok lain akan menjadi basi. Protokol komunikasi antara pengelola tembolok yang menjaga konsistensi data dikenal sebagai [[protokol koherensi]].
3
== Contoh tembolok perangkat keras ==
=== Tembolok CPU ===
{{
Memori kecil di atau dekat [[CPU]] dapat beroperasi lebih cepat daripada [[Penyimpanan data komputer#Penyimpanan utama|memori utama]] yang jauh lebih besar. Kebanyakan CPU sejak 1980-an telah menggunakan satu atau lebih tembolok, terkadang dalam [[Tembolok CPU#Tembolok multi-level|level bertingkat]]; modern high-end [[Sistem tertanam|tertanam]], [[mikroprosesor]] [[desktop]] dan server mungkin memiliki sebanyak enam jenis tembolok (antara level dan fungsi),.<ref>{{Cite web|last=Pirzada|first=Usman|date=2015-09-25|title=Intel Broadwell Core i7 5775C '128MB L4 Cache' Gaming Behemoth and Skylake Core i7 6700K Flagship Processors Finally Available In Retail|url=https://wccftech.com/intel-broadwell-core-i7-5775c-128mb-l4-cache-and-skylake-core-i7-6700k-flagship-processors-available-retail/|website=Wccftech|language=en-US|access-date=2020-10-09}}</ref> Contoh tembolok dengan fungsi tertentu adalah [[Daftar istilah teknologi informasi|D-cache]] dan [[Daftar istilah teknologi informasi|I-cache]] dan [[buffer tepi tampilan terjemahan]] untuk [[Unit manajemen memori|MMU]].
=== Tembolok GPU ===
[[Unit pemroses grafis|Unit pemrosesan grafis]] (GPU) sebelumnya sering kali
Saat GPU terbaru (terutama dengan [[Penghitungan kernel|shader komputasi]] [[GPGPU]]) mereka telah mengembangkan tembolok yang semakin besar dan semakin umum, termasuk [[Tembolok CPU#Instruksi tembolok|tembolok instruksi]] untuk [[shader]], yang menunjukkan fungsionalitas yang semakin umum dengan tembolok CPU.<ref name=":0">{{Cite journal|last=Mittal|first=Sparsh|title=A SURVEY OF TECHNIQUES FOR MANAGING AND LEVERAGING CACHES IN GPUs|url=https://www.academia.edu/6940614/A_Survey_of_Techniques_for_Managing_and_Leveraging_Caches_in_GPUs|journal=Journal of Circuits, Systems and Computers|language=en|volume=23|issue=08|pages=1430002|issn=0218-1266}}</ref> Misalnya, arsitektur GPU [[GeForce 200 series|GT200]] tidak menampilkan tembolok L2, sedangkan GPU [[Fermi (mikroarsitektur)|Fermi]] memiliki tembolok level terakhir 768 KB, GPU [[Kepler (mikroarsitektur)|Kepler]] memiliki tembolok level terakhir 1536 KB,<ref name=":0" /> dan GPU [[Maxwell (mikroarsitektur)|Maxwell]] memiliki tembolok level terakhir 2048 KB. -tingkat tembolok. Tembolok ini telah berkembang untuk menangani [[Sinkronisasi (ilmu komputer)|sinkronisasi primitif]] antara utas dan [[Linearisasi|operasi atom]], dan antarmuka dengan [[MMU]] gaya CPU.
=== DSP ===
[[Digital signal processors]] juga telah digeneralisasi selama bertahun-tahun. Desain sebelumnya
▲juga telah digeneralisasi selama bertahun-tahun. Desain sebelumnya menggun[[memori scratchpad|hpad]] yang diumpankan [[Direct memory access|DMA]], tetapi DSP modern sep[[Qualcomm Hexagon|agon]] sering kali menyertakan set tembolok yang sangat mirip ke CPU (mis[[Direct memory access|0]][[Modified Harvard architecture|ikasi]] denache).<ref>{{Cite web|title=Hexagon DSP SDK Processor|url=https://developer.qualcomm.com/software/hexagon-dsp-sdk/dsp-processor|website=Qualcomm Developer Network|language=en|access-date=2020-10-09}}</ref>
=== Terjemahan tepi buffer ===
[[Unit manajemen memori]] (MMU) yang mengambil entri tabel halaman dari memori utama memiliki tembolok khusus, digunakan untuk merekam hasil
== Tembolok dalam jaringan ==
Baris 71 ⟶ 76:
===== Time aware least recently used (TLRU) =====
Time aware Least Recently Used (TLRU)<ref>{{cite journal|author=Bilal, Muhammad|display-authors=etal|year=2017|title=Time Aware Least Recent Used (TLRU) Cache Management Policy in ICN|journal=IEEE 16th International Conference on Advanced Communication Technology (ICACT)|pages=528–532|arxiv=1801.00390|bibcode=2018arXiv180100390B|doi=10.1109/ICACT.2014.6779016|isbn=978-89-968650-3-2}}</ref> adalah varian LRU yang dirancang untuk situasi di mana konten yang disimpan di tembolok memiliki masa pakai yang valid. Algoritme ini cocok untuk aplikasi tembolok jaringan, seperti Information-centric networking (ICN), [[Content Delivery Network
===== Least frequent recently used (LFRU) =====
Baris 79 ⟶ 84:
=== 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 (ilmu komputer)|kernel]] sistem operasi.
Baris 87 ⟶ 92:
=== Tembolok Web ===
{{
[[Peramban web]] dan [[Server proxy|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 [[Responsivitas|daya tanggap]] bagi pengguna web.<ref>{{cite web|author=Multiple (wiki)|title=Web application caching|url=http://docforge.com/wiki/Web_application/Caching|work=Docforge|accessdate=2013-07-24|archive-date=2019-12-12|archive-url=https://web.archive.org/web/20191212152625/http://www.docforge.com/wiki/Web_application/Caching|dead-url=yes}}</ref>
Baris 95 ⟶ 100:
=== Memoisasi ===
{{
Tembolok dapat menyimpan data yang dihitung sesuai permintaan daripada diambil dari penyimpanan pendukung. [[Memoization]] adalah teknik [[Pengoptimalan program|pengoptimalan]] yang menyimpan hasil [[Subrutin|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.
Baris 111 ⟶ 116:
Sebuah [[Tembolok terdistribusi|distributed cache]]<ref>{{cite journal|last=Paul|first=S|author2=Z Fei|date=1 February 2001|title=Distributed caching with centralized control|journal=Computer Communications|volume=24|issue=2|pages=256–268|doi=10.1016/S0140-3664(00)00322-4|citeseerx=10.1.1.38.1094}}<!--| accessdate =18 November 2009--></ref> menggunakan host jaringan untuk memberikan skalabilitas, keandalan, dan kinerja untuk aplikasi.<ref>{{cite journal|last=Khan|first=Iqbal|date=July 2009|title=Distributed Caching on the Path To Scalability|url=https://msdn.microsoft.com/magazine/dd942840.aspx|journal=MSDN|volume=24|issue=7}}</ref> Host dapat ditempatkan bersama atau tersebar di berbagai wilayah geografis.
== {{anchor|The difference between buffer and cache}}<!--Nama bagian sebelumnya digunakan di tautan eksternal--> Buffer vs.
Semantik dari "buffer" dan "tembolok" tidak jauh berbeda; meski begitu, ada perbedaan mendasar dalam maksud antara proses caching dan proses buffering.
Baris 147 ⟶ 152:
{{Div col end}}
==
{{Reflist|30em}}
== Bacaan lanjutan ==
* {{en}}[http://msdn.microsoft.com/en-us/library/dd129907.aspx "Caching in the Distributed Environment"]
* [http://www.detikinet.com/read/2009/11/19/114448/1244699/398/cache Detik: Cache, Tepatkah Disebut Tembolok?]
{{Authority control}}
[[Kategori:Tembolok (komputer)]]
[[Kategori:Arsitektur komputer]]
|