Cache prosesor L1, L2 dan L3 semuanya terbuat dari SRAM?

10

Apakah cache Prosesor L1, L2 dan L3 semuanya terbuat dari SRAM? Jika benar, mengapa L1 lebih cepat dari L2 dan L2 lebih cepat dari L3? Saya tidak mengerti bagian ini ketika saya membaca tentang mereka.

Acaz Souza
sumber
Pertanyaan terkait: Mengapa kita membutuhkan beberapa tingkat memori cache? . Juga agak terkait: Apa sebenarnya cache bertingkat dalam prosesor? . Dari komentar Anda di sana, saya melihat Anda sudah menemukan pertanyaan terakhir.
Paul A. Clayton

Jawaban:

12

Secara umum mereka semua diimplementasikan dengan SRAM.

(IBM POWER dan chip zArchitecture menggunakan memori DRAM untuk L3. Ini disebut DRAM tertanam karena diimplementasikan dalam jenis teknologi proses yang sama dengan logika, memungkinkan logika cepat untuk diintegrasikan ke dalam chip yang sama dengan DRAM. Untuk POWER4 the off- chip L3 menggunakan eDRAM; POWER7 memiliki L3 pada chip yang sama dengan core pemrosesan.)

Meskipun mereka menggunakan SRAM, mereka tidak semua menggunakan desain SRAM yang sama . SRAM untuk L2 dan L3 dioptimalkan untuk ukuran (untuk meningkatkan kapasitas mengingat ukuran chip manufaktur terbatas atau mengurangi biaya kapasitas yang diberikan) sementara SRAM untuk L1 lebih mungkin dioptimalkan untuk kecepatan.

Lebih penting lagi, waktu akses terkait dengan ukuran fisik penyimpanan. Dengan tata letak dua dimensi seseorang dapat mengharapkan latensi akses fisik kira - kira sebanding dengan akar kuadrat kapasitas. (Arsitektur cache yang tidak seragam mengeksploitasi ini untuk menyediakan subset cache pada latensi yang lebih rendah. Irisan L3 dari prosesor Intel baru-baru ini memiliki efek yang serupa; hit pada slice lokal memiliki latensi yang jauh lebih rendah.) Efek ini dapat membuat cache DRAM lebih cepat daripada cache SRAM pada kapasitas tinggi karena DRAM secara fisik lebih kecil.

Faktor lain adalah sebagian besar cache L2 dan L3 menggunakan akses serial tag dan data di mana sebagian besar cache L1 mengakses tag dan data secara paralel. Ini adalah pengoptimalan daya (tingkat kehilangan L2 lebih tinggi dari tingkat kehilangan L1, sehingga akses data lebih cenderung menjadi pekerjaan yang sia-sia; akses data L2 umumnya membutuhkan lebih banyak energi yang terkait dengan kapasitas -; dan cache L2 biasanya memiliki asosiasi yang lebih tinggi yang berarti bahwa lebih banyak entri data harus dibaca secara spekulatif). Jelas, harus menunggu pencocokan tag sebelum mengakses data akan menambah waktu yang diperlukan untuk mengambil data. (Akses L2 juga biasanya hanya dimulai setelah miss L1 dikonfirmasi, sehingga latensi pendeteksian miss L1 ditambahkan ke latensi akses total L2.)

Selain itu, L2 cache secara fisik lebih jauh dari mesin eksekusi. Menempatkan cache data L1 dekat dengan mesin eksekusi (sehingga kasus umum dari hit L1 cepat) umumnya berarti bahwa L2 harus ditempatkan lebih jauh.

Paul A. Clayton
sumber
Jawaban yang bagus Tapi saya tidak setuju dengan pernyataan Anda bahwa tarif miss L2 lebih tinggi dari tarif miss L1. Saat kami bergerak lebih rendah dalam hierarki memori, kami memiliki struktur yang lebih besar yang memberikan kesalahan yang lebih sedikit tetapi dengan peningkatan latensi.
Harshavardhan Ramanna
@HarshavardhanRamanna Ya peningkatan kapasitas dan asosiatif membantu meleset, tetapi filter level bawah mengakses (transfer tradisional seluruh blok dari L2 menyaring lokalitas spasial jangka pendek di dalam blok; hit hanya menghitung satu akses di L2 sedangkan blokir itu sendiri kemungkinan akan memberikan hit di L1 untuk akses tambahan). The Total tingkat kehilangan turun (misalnya, L2 dengan hit rate 80% yang layak dan L1 dengan hit rate 95% mendapat hit rate Total 99%).
Paul A. Clayton