Arsitektur dan organisasi sistem cache memory

Nama: Chandra Sasmito Aji

NPM  : 22312102

Kelas : IF 22 B



https://teknokrat.ac.id/

https://ftik.teknokrat.ac.id/


 Arsitektur dan organisasi sistem cache memory




1. Kinerja Cache


Kinerja memori cache sering diukur dalam hal kuantitas yang disebut rasio Hit. Kita dapat meningkatkan kinerja Cache menggunakan ukuran blok cache yang lebih tinggi, asosiasi yang lebih tinggi, mengurangi tingkat kesalahan, mengurangi penalti kesalahan, dan Mengurangi waktu untuk mencapai cache . 


Ditanyakan juga, bagaimana kinerja cache dihitung?Sebuah contoh Untuk cache terpadu, penalti per instruksi adalah (0 + 1,35% x 20) = 0,27 siklus. Untuk akses data, yang terjadi pada sekitar 1/3 dari semua instruksi, penaltinya adalah (1 + 1,35% x 20) = 1,27 siklus per akses, atau 0,42 siklus per instruksi. Total penalti adalah 0.69 CPI.


Orang mungkin juga bertanya, apa yang ada di cache memori? Memory Caching Sebuah memory cache , kadang-kadang disebut cache store atau RAM cache , adalah bagian dari memori yang terbuat dari RAM statis (SRAM) berkecepatan tinggi, bukan RAM dinamis (DRAM) yang lebih lambat dan lebih murah yang digunakan untuk memori utama . Caching memori efektif karena sebagian besar program mengakses data atau instruksi yang sama berulang-ulang. 


Bagaimana memori cache meningkatkan kinerja?Mengoptimalkan Kinerja Cache Mengurangi waktu hit – Cache tingkat pertama yang kecil dan sederhana serta prediksi cara. Meningkatkan bandwidth cache – Cache berpipa, cache multi-bank, dan cache non-pemblokiran. Mengurangi penalti kesalahan – Kata kritis terlebih dahulu dan menggabungkan buffer tulis. 


2. Penggunaan Asosiasi untuk mengurangi tingkat Kesalahan


Pemetaan Langsung (Direct Mapping)

Pemetaan langsung adalah teknik yang paling sederhana, yaitu teknik ini memetakan blok memori utama hanya ke sebuah saluran cache saja. Jika suatu block ada di cache, maka tempatnya sudah tertentu. Keuntungan dari direct mapping adalah sederhana dan murah. Sedangkan kerugian dari direct mapping adalah suatu blok memiliki lokasi yang tetap (jika program mengakses 2 blok yang di map ke line yang sama secara berulang-ulang, maka cache-miss sangat tinggi


Pemetaan Asosiatif(Associative Mapping)

Pemetaan asosiatif mengatasi kekurangan pemetaan langsung dengan cara mengizinkan setiap blok memori utama untuk dimuatkan ke sembarang saluran cache. Dengan pemetaan assosiatif, terdapat fleksibilitas penggantian blok ketika blok baru dibaca ke dalam cache. Kekurangan pemetaan asosiatif yang utama adalah kompleksitas rangkaian yang diperlukan untuk menguji tag seluruh saluran cache secara parallel, sehingga pencarian data di cache menjadi lama.


Pemetaan Asosiatif Set (Set Associative Mapping)

Pada pemetaan ini, cache dibagi dalam sejumlah sets. Setiap set berisi sejumlah line. Pemetaan asosiatif set memanfaatkan kelebihan-kelebihan pendekatan pemetaan langsung dan pemetaan asosiatif.


3. Penggunaan cache bertingkat hierarki untuk mengurangi kesalahan penalti

  1. level-1: memiliki ukuran paling kecil di antara semua cache, sekitar puluhan kilobyte saja. Kecepatannya paling cepat di antara semua cache.
  2. level-2: memiliki ukuran yang lebih besar dibandingkan dengan cache level-1, yakni sekitar 64 kilobyte, 256 kilobyte, 512 kilobyte, 1024 kilobyte, atau lebih besar. Meski demikian, kecepatannya lebih lambat dibandingkan dengan level-1, dengan nilai latency kira-kira 2 kali hingga 10 kali. Cache level-2 ini bersifat opsional. Beberapa prosesor murah dan prosesor sebelum Intel Pentium tidak memiliki cache level-2.
  3. level-3: memiliki ukuran yang lebih besar dibandingkan dengan cache level-2, yakni sekitar beberapa megabyte tetapi agak lambat. Cache ini bersifat opsional. Umumnya digunakan pada prosesor-prosesor server dan workstation seperti Intel Xeno atau Intel Intanium. Beberapa prosesor desktop juga menawarkan cache level-3 (seperti halnya Intel Pentium Extreme Edition), meski ditebus dengan harga yang sangat tinggi.


4. Pengoptimalan perangkat lunak untuk meningkatkan efektivitas cache


Cache lokal

Cache layanan dapat diimplementasikan baik di memori ataupun eksternal ke layanan. Cache on-box, yang umum diterapkan di memori proses, relatif cepat dan mudah diimplementasikan dan dapat memberikan peningkatan signifikan dengan kerja minimal. Cache on-box seringkali merupakan pendekatan pertama yang diterapkan dan dievaluasi begitu kebutuhan caching diidentifikasi. Berbeda dengan cache eksternal, cache on-box tidak memiliki overhead operasional tambahan, sehingga risikonya rendah bila diintegrasikan ke layanan yang ada. Kami sering mengimplementasikan cache on-box sebagai tabel hash dalam memori yang dikelola melalui logika aplikasi (misalnya, secara eksplisit menempatkan hasil ke cache setelah panggilan layanan selesai) atau tertanam di klien layanan (misalnya, dengan menggunakan klien HTTP caching).


Cache eksternal

Cache eksternal dapat mengatasi banyak masalah yang baru saja kita bahas. Cache eksternal menyimpan data ter-cache di armada terpisah, misalnya dengan menggunakan Memcached atau Redis. Masalah koherensi cache berkurang karena cache eksternal memegang nilai yang digunakan semua server pada armada. (Perlu dicatat masalah ini tidak sepenuhnya teratasi karena mungkin ada kasus kegagalan saat memperbarui cache.) Beban keseluruhan pada layanan hilir berkurang dibandingkan dengan cache di memori dan tidak sebanding dengan ukuran armada. Tidak ada masalah start dingin selama berlangsungnya peristiwa seperti penerapan karena cache eksternal tetap terpopulasi di seluruh penerapan. Akhirnya, cache eksternal menyediakan lebih banyak ruang penyimpanan daripada cache di dalam memori,  mengurangi eviksi cache karena kendala ruang.


Cache inline dan cache side

Keputusan lain yang perlu dibuat ketika kami mengevaluasi bermacam pendekatan caching adalah pilihan antara cache inline dan side. Inline cache, atau cache read-through/write-through, menggabung manajemen cache ke API akses data utama, menjadikan manajemen cache sebagai detail implementasi dari API itu. Contohnya termasuk implementasi spesifik aplikasi seperti Amazon DynamoDB Accelerator (DAX) dan implementasi berbasis standar seperti caching HTTP (baik dengan klien caching lokal atau server cache eksternal seperti Nginx atau Varnish). Cache side, di sisi lain, adalah penyimpanan objek generik seperti yang disediakan oleh Amazon ElastiCache (Memcached dan Redis) atau perpustakaan seperti Ehcache dan Google Guava untuk cache dalam memori. Dengan cache side, kode aplikasi langsung memanipulasi cache sebelum dan sesudah panggilan ke sumber data, memeriksa objek ter-cache sebelum melakukan panggilan hilir, dan meletakkan objek di cache setelah panggilan selesai.


Ekspirasi Cache

Beberapa detail implementasi cache yang paling menantang adalah memilih ukuran cache yang tepat, kebijakan ekspirasi, dan kebijakan eviksi. Kebijakan ekspirasi menentukan berapa lama mempertahankan suatu item di cache. Kebijakan paling umum menggunakan ekspirasi berbasis waktu absolut (yaitu, mengaitkan waktu untuk hidup (TTL) dengan setiap objek saat dimuat). TTL dipilih sesuai kebutuhan klien, seperti seberapa toleran klien terhadap data kedaluwarsa, dan seberapa statis data tersebut, karena perubahan data yang lambat dapat di-cache secara lebih agresif. Ukuran cache ideal didasarkan pada model volume permintaan terantisipasi dan distribusi objek ter-cache di seluruh permintaan itu. Dari situ, kami mengestimasi ukuran cache yang memastikan hit rate cache yang tinggi dengan pola trafik ini. 


Komentar

Postingan populer dari blog ini

Penerapan Teknologi Informasi dalam berbagai bidang - Universitas Teknokrat Indonesia (www.teknokrat.ac.id)

Contoh-contoh komputer yang termasuk generasi pertama hingga generasi modern, beri gambar dan ciri-ciri dari komputer pada generasi tersebut.