Minggu, 08 Desember 2013

RAM cache


RAM Cache
RAM Cache sangat sederhana sepotong bertubuh kecil dari RAM yang dapat bekerja secepat prosesor. Jika Anda mampu membelinya, semua memori di komputer anda bisa cache RAM - hanya maka kita tidak akan menyebutnya Cache hanya RAM.
Dalam prakteknya hanya beberapa megabyte atau lebih dari RAM cache umumnya digunakan dalam mesin khas. Apa penggunaan ini jumlah yang tidak memadai kecil RAM bila dibandingkan dengan Gigabytes program pada umumnya membutuhkan?
Jawabannya adalah salah satu yang sangat aneh tapi pertama-tama kita perlu melihat sedikit lebih dekat bagaimana RAM cache terhubung. Ini bukan hanya seluas RAM terpisah dari RAM utama. Hal ini terhubung ke prosesor sedemikian rupa bahwa prosesor selalu mencoba untuk menggunakan cache.
Ketika prosesor ingin membaca lokasi memori tertentu yang terlihat untuk melihat apakah lokasi tersebut sudah dalam cache. Jika tidak maka itu harus dibaca dari memori utama dan ada negara menunggu sedangkan data diambil. Setelah data membacanya disimpan dalam cache dan permintaan berikutnya untuk membaca lokasi tertentu tidak mengakibatkan membaca dari memori utama dan sehingga setiap negara menunggu dihindari.
Pada titik ini Anda mungkin sedikit skeptis bahwa memori cache berharga. Sebagai contoh, ketika Anda ingin isi lokasi memori untuk pertama kalinya Anda masih harus menunggu untuk itu. Hanya bila Anda ingin untuk kedua kalinya bahwa Anda dapat memiliki cepat. Hal ini tampaknya seperti keuntungan berharga.
Apa mungkin tampak lebih buruk lagi adalah bahwa sistem cache yang sederhana tidak melakukan Cache menulis. Artinya, ketika prosesor ingin menulis ke memori mengabaikan cache dan memasang dengan negara menunggu. Itu semua tampaknya seperti komplikasi dan biaya dengan hampir tidak ada melunasi - tapi di sana Anda akan salah.
Alasan Anda akan salah adalah bahwa Anda tidak memperhitungkan cara program berperilaku.
Hal pertama yang harus disadari adalah bahwa sebagian besar akses memori yang membaca.
Mengapa?
Fakta sederhana adalah bahwa untuk setiap item data tertulis kepada banyak memori dari lokasi penyimpanan program, yang prosesor mematuhi, dibaca.
Artinya, 99% dari semua akses memori sehingga prosesor dapat mengetahui apa yang harus dilakukan berikutnya! Untuk alasan ini negara menunggu dihasilkan ketika data harus ditulis ke memori memiliki dampak yang cukup kecil pada kinerja.
Cache mendapat antara CPU dan RAM
Kejutan besar berikutnya adalah bahwa ketika lokasi memori telah membaca kemungkinan besar bahwa itu akan dibaca lagi, dan lagi.
Setiap program memiliki apa yang dikenal sebagai "set bekerja". Ini adalah lokasi memori yang kembali menggunakan waktu dan waktu lagi. Jika Anda bisa membuat sebuah sistem memori yang bersinar setiap kali lokasi memori diakses maka apa yang Anda akan melihat akan patch cahaya yang bergerak di sekitar sebagai program berlari.
Akan ada lokasi memori yang akan diakses dari perangkat kerja tetapi dalam utama ini adalah tempat tindakan. Alasan untuk perilaku ini adalah bahwa program cenderung mengulangi perbuatan - mereka berjalan di loop - dan ini berarti bahwa potongan yang sama dari memori dibaca berulang-ulang.
Untuk meringkas
  • Sebagian besar akses memori dibaca tidak menulis - kecepatan write memiliki sedikit dampak pada kinerja.
  • Program cenderung menggunakan memori dalam kelompok kecil dari lokasi - set bekerja.
Hits dan Misses
Ketika membaca dapat dipenuhi dari cache tidak ada negara menunggu dihasilkan dan ini disebut "cache hit".
Ketika lokasi tidak dalam cache maka kita memiliki cache "rindu" dan prosesor harus menunggu sementara data yang susah payah diambil dari RAM dan disimpan dalam cache.
Sekarang kita sampai pada bagian yang benar-benar mengejutkan. Selama cache lebih besar daripada working set dari program saat ini jumlah hits cache yang dapat setinggi 99% atau lebih baik. Artinya, dampak dari memori utama lambat dikurangi menjadi kurang dari 1% dan sehingga tidak benar-benar perlu dicemaskan.
Pertama kali Anda mendengar cerita ini Anda cenderung untuk menerimanya tapi kemudian Anda mulai berpikir - tidak ada itu tidak bisa begitu.
Sebagai contoh, bayangkan bahwa program Anda sedang memproses file gambar 1Mbyte sehingga setiap pixel diproses hanya sekali. Kemudian dalam membaca, Anda akan menghasilkan satu juta Cache misses dan menulis itu mundur juta lain. Itu setidaknya dua juta beberapa negara menunggu - pasti mesin harus datang untuk berhenti!
Ini adalah kesalahpahaman dari apa yang 99% statistik kepada Anda. Untuk setiap byte data yang dibaca dan ditulis 100 lokasi memori lain akan dibaca sebagai bagian dari menjalankan program dan rata-rata 100 ini akan menghasilkan hits cache yang. Ini bukan berarti bahwa tidak ada banyak cache misses per detik, hanya saja ada juga hit cache yang lebih per detik!
RAM cache

Tidak ada komentar:

Posting Komentar