Apakah ada korespondensi antara ukuran cache dan latensi akses? Semua hal lain dianggap sama, apakah cache yang lebih besar beroperasi lebih lambat? Jika demikian, mengapa? Seberapa lambat?
Apakah ada korespondensi antara ukuran cache dan latensi akses? Semua hal lain dianggap sama, apakah cache yang lebih besar beroperasi lebih lambat? Jika demikian, mengapa? Seberapa lambat?
Jawaban:
Item di tangan Anda lebih cepat diakses daripada item di saku Anda, yang lebih cepat diakses daripada item di lemari Anda, yang lebih cepat diakses daripada item di Digikey. Setiap jenis penyimpanan berturut-turut yang saya daftarkan lebih besar tetapi lebih lambat dari sebelumnya.
Jadi, mari kita dapatkan yang terbaik dari kedua dunia, mari jadikan tangan Anda sebesar gudang Digikey! Tidak, itu tidak berhasil, karena sekarang mereka tidak lagi benar-benar menyerahkannya. Mereka adalah bola meriam yang membebani Anda.
Alasan penyimpanan yang lebih besar lebih lambat untuk diakses adalah jarak . Penyimpanan yang lebih besar jauh dari Anda rata-rata. Ini berlaku untuk item fisik, dan untuk RAM.
Memori komputer membutuhkan ruang fisik. Karena alasan itu, ingatan yang lebih besar secara fisik lebih besar, dan beberapa lokasi dalam ingatan itu akan menjadi lebih jauh secara fisik. Hal-hal yang jauh memerlukan waktu lebih lama untuk diakses, karena batas kecepatan apa pun yang ada. Dalam hal kantong Anda, dan Digikey, batas kecepatan adalah kecepatan lengan Anda, dan batas kecepatan jalan raya.
Dalam kasus RAM, batas kecepatan adalah kecepatan rambat sinyal listrik, keterlambatan rambatan gerbang dan driver, dan penggunaan umum jam sinkron. Sekalipun uang bukan masalah, dan Anda dapat membeli sebanyak yang Anda inginkan dari teknologi RAM tercepat yang ada saat ini, Anda tidak akan dapat memperoleh manfaat dari semua itu. Letakkan lembar L1 cache berukuran A4 jika Anda mau, dan tempatkan CPU Anda tepat di tengah. Ketika CPU ingin mengakses beberapa memori tepat di sudut memori, itu benar-benar akan memerlukan nanodetik untuk permintaan untuk sampai ke sana, dan nanodetik untuk itu untuk kembali. Dan itu belum termasuk semua penundaan propagasi dan gerbang serta driver. Itu akan sangat memperlambat CPU 3GHz Anda.
Karena logika sinkron jauh lebih mudah dirancang daripada logika asinkron, satu 'blok' RAM akan di-clock dengan jam yang sama. Jika ingin menjadikan seluruh memori sebagai cache L1, maka Anda harus mencatat seluruh lot dengan jam lambat untuk mengatasi waktu terburuk dari lokasi yang paling jauh dalam memori. Ini berarti bahwa lokasi memori yang jauh sekarang menahan yang lokal, yang bisa di-clock lebih cepat. Jadi, hal terbaik yang harus dilakukan adalah membuat zona memori. Bagian cache terdekat dan terkecil akan menggunakan jam tercepat. Bagian terdekat dan terkecil berikutnya akan menggunakan jam yang sedikit lebih lambat, dll.
Dan sekarang Anda memiliki cache L1 & L2 dan RAM.
Yang membawa kita ke alasan selanjutnya, konsumsi daya.
Cache sebenarnya mengkonsumsi sejumlah besar daya. Tidak hanya memori itu sendiri, tetapi semua logika di sekitarnya yang menangani pemetaan antara garis cache dan memori utama. Meningkatkan kinerja logika ekstra ini dapat menghasilkan peningkatan konsumsi daya. Sekarang, untuk aplikasi tertentu (seluler, tertanam) Anda bahkan memiliki lebih banyak insentif untuk menjaga cache tetap kecil.
Lihat Pertukaran Cache Desain untuk Power dan Optimalisasi Kinerja: Studi Kasus (Ching-Long Su dan Alvin M. Despain, 1995).
Meninggalkan semua faktor ekonomi / kinerja / konsumsi daya, jawaban atas pertanyaan Anda adalah: itu tergantung pada banyak faktor arsitektur mikro.
Sebagai contoh, lihat referensi ini - latensi akses L1 yang diukur untuk semua prosesor yang diuji adalah siklus 4 jam. Frekuensi prosesor hampir sama, tetapi ukuran cache L1 berbeda hingga faktor 3.
Alasan latensi konstan ke L1 di beberapa prosesor berbeda dalam tes di atas berakar pada arsitektur mikro cache: akses cache itu sendiri (mengambil data dari memori) hanya memerlukan satu siklus clock tunggal. Tiga siklus tambahan dihabiskan untuk mendekode akses, memeriksa keberadaan data, dan lainnya ... Jumlah tahapan tambahan sama di seluruh prosesor yang diuji, oleh karena itu latensi aksesnya sama.
Terlepas dari contoh di atas, orang tidak boleh sampai pada kesimpulan bahwa latensi cache tidak tergantung pada ukuran cache. Jika seseorang mencoba menerapkan cache L1 yang sangat besar, logika yang melakukan semua operasi yang diperlukan untuk membaca cache juga akan menjadi besar. Pada titik tertentu, penundaan propagasi melalui semua logika ini akan terlalu lama dan operasi yang telah mengambil hanya satu siklus clock sebelumnya harus dibagi menjadi beberapa siklus clock. Ini akan meningkatkan latensi.
Dengan asumsi bahwa cache yang dimaksud diimplementasikan dalam SRAM, modul yang paling dipengaruhi oleh ukuran cache adalah: decoder baris dan mux. Namun, bahkan amp indra akan terpengaruh untuk cache yang sangat besar: ayunan tegangan yang lebih kecil pada garis bit karena kapasitansi yang lebih tinggi akan membutuhkan amp indera "lebih kuat". Mengatakan bahwa, efek paling parah pada kecepatan logika akan ditambahkan oleh kapasitansi kawat interkoneksi - kapasitansi ini memiliki lebih dari ketergantungan linier pada ukuran SRAM. Detail yang tepat adalah implementasi khusus.
Sekarang, cache L1 cukup stabil dalam latensi mereka karena kinerja mereka yang paling penting. Jika Anda mencoba menganalisis cache L2 dan L3, gambarnya menjadi sangat rumit.
Gambar lebih rumit ketika Anda mempertimbangkan prosesor multi-core - mereka memiliki logika tambahan untuk memastikan koherensi cache . Ini mengarah ke faktor tambahan yang memengaruhi latensi akses cache: riwayat akses ke memori semua inti.
Ringkasan
Seperti yang Anda lihat, pertanyaan Anda jauh dari sepele dan tidak bisa dijawab sepenuhnya. Namun, jika Anda mempertimbangkan secara ekonomis dan kinerja yang lebih baik dari cache, maka saya akan mengatakan bahwa ukurannya tidak akan mempengaruhi latensi dengan cara apa pun.
Untuk pembaca yang tertarik:
Referensi ini adalah analisis yang sangat mendalam tentang faktor kinerja CPU modern. Ada banyak materi terkait cache di sana. Membutuhkan pemahaman mendalam dalam arsitektur komputer dan prinsip-prinsip arsitektur mikro (atau alternatif - ringkasan topik yang perlu diketahui untuk menjadi seorang profesional di bidang ini).
Insinyur tes cache CPU di sini - Dave Tweed dalam komentar memiliki penjelasan yang benar. Cache berukuran untuk memaksimalkan kinerja pada titik harga yang diharapkan CPU. Cache umumnya konsumen terbesar ruang mati dan ukurannya membuat perbedaan ekonomi (dan kinerja) yang besar.
Lihatlah halaman keluarga CPU Ivy Bridge Intel: http://ark.intel.com/products/codename/29902/Ivy-Bridge
Xeon ujung atas hadir dengan cache 30MB, memiliki 12 core dan harganya sekitar $ 2.700. I3 ujung bawah dengan cache 3MB (i3-3217) harganya hanya $ 500 untuk seluruh laptop (saya tidak dapat menemukannya secara individual).
Xeon memberikan kinerja terbaik tetapi juga lebih mahal untuk pembuatan dan pengujian. I3 jauh lebih murah tetapi trade-off adalah ukuran die yang lebih kecil dimana cache adalah bagian terbesar.