Arsitektur dan organisasi sistem memory
Nama : M Farhan Alhabsyi
Npm : 22312084
Kelas : If 22B
Arsitektur dan organisasi sistem cache memory
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
- level-1: memiliki ukuran paling kecil di antara semua cache, sekitar puluhan kilobyte saja. Kecepatannya paling cepat di antara semua cache.
- 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.
- 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.
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 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, sehingga mengurangi eviksi cache karena kendala ruang.
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.
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
Posting Komentar