Ada dua aspek perkembangan yang sedang
berlangsung dari CPU baru – frekuensi clock meningkat dan semakin
banyaknya transistor yang digunakan. Sekarang saatnya untuk melihat
teknologi yang sangat berbeda namun berkaitan – koneksi prosesor untuk
RAM, dan penggunaan cache L1 dan L2.
Konflik Kecepatan
CPU internal bekerja pada frekuensi clock yang sangat tinggi (seperti 3200 MHz), dan RAM tidak dapat bersaing dengan ini.
Kecepatan RAM yang paling umum adalah
antara 266 dan 533 MHz. Dan ini hanya sebagian kecil dari kecepatan CPU
bekerja. Jadi ada jurang besar antara mesin (CPU) yang mungkin bekrja
pada 3200 MHz, dan “terus beroperasi”, yang mungkin hanya bekerja pada
333 MHz, dan yang telah bekerja ke data ke dan dari RAM. Kedua subsistem
kurang cocok satu sama lain.
Jika tidak dapat dilakukan dalam masalah
ini, tidak akan ada alasan untuk mengembangkan CPU yang lebih cepat.
Jika CPU harus menunggu bus, yang bekerja di salah satu dari keenam
kecepatan, CPU akan terlambat 5/6 Hz. Dan itu akan menjadi limbah murni.
Solusinya adalah dengan memasukkan
komponen kecil yang disebut Cache, penyimpanan menengah RAM berkecepatan
tinggi. Buffer ini (RAM cache) menyediakan transisi yang lebih efisien
antara CPU yang cepat dan RAM lambat. Cache RAM beroperasi pada
frekuensi clock yang lebih tinggi dari RAM normal. Karena itu, data bisa
dibaca lebih cepat melalui cache.
Data terus-menerus bergerak
Cache memberikan data register kepada
CPU. Ini adalah unit penyimpan kecil yang ditempatkan tepat di dalam
inti prosesor, dan mereka adalah RAM tercepat mutlak ada. Ukuran dan
jumlah register ini dirancang sangat khusus untuk tiap jenis CPU
CPU dapat memindahkan data dalam paket
ukuran berbeda, seperti byte (8 bit), kata (16 bit), dwords (32 bit)
atau blok (kelompok yang lebih besar dari bit), dan ini sering
melibatkan register. Paket data yang berbeda terus bergerak bolak-balik:
- Dari register CPU untuk cache 1 Tingkat.
- Dari cache L1 untuk register.
- Dari satu mendaftar ke yang lain
- Dari L1 cache ke cache L2, dan seterusnya …
Menyimpan cache adalah dari jembatan utama antara RAM dan register yang melakukan pertukaran data dengan unit eksekusi prosesor.
Situasi yang optimal adalah jika CPU
mampu terus bekerja dan sepenuhnya memanfaatkan semua waktu. Ini akan
berarti bahwa register harus selalu dapat mengambil data yang memerlukan
unit eksekusi. Tapi ini bukan realitas, karena CPU biasanya hanya
menggunakan 35% dari waktu clock. Namun, tanpa cache, pemanfaatan ini
akan lebih rendah.
Bottlenecks
cache CPU adalah penyelesaian masalah
suatu set yang sangat spesifik dari “bottleneck”. Ada banyak “hambatan”
di PC – transisi antara sistem cepat dan lambat, di mana perangkat cepat
harus menunggu sebelum dapat mengirimkan atau menerima data.
Keterlambatan ini dapat memiliki efek yang sangat buruk kinerja total
PC, sehingga mereka harus diminimalkan.
Hambatan terburuk absolut ada antara CPU dan RAM. Di sinilah kita memiliki lalu lintas data terberat, dan dalam daerah ini bahwa produsen PC pengeluaran banyak energi pada pembangunan baru. Setiap generasi baru dari CPU membawa perbaikan yang berkaitan dengan front side bus.
Cache CPU adalah “cerdas”, sehingga dapat
mengurangi lalu lintas data di bus sisi depan. Pengendali cache selalu
memantau pekerjaan CPU, dan selalu berusaha untuk membaca secara tepat
kebutuhan data CPU. Ketika berhasil, ini disebut cache hit. Ketika cache
tidak berisi data yang diinginkan, ini disebut cache miss.
Ada Dua Level dari Cache
Ide di balik cache adalah bahwa ia harus
berfungsi sebagai “Penyimpanan yang dekat” RAM cepat. Sebuah penyimpanan
yang selalu bisa dipasok dari CPU.
Dalam prakteknya selalu ada sedikitnya
dua penyimpanan yang terdekat. Mereka disebut cache Level 1, Level 2,
dan (jika ada) Level 3. Beberapa prosesor (seperti Intel Itanium)
memiliki tiga tingkat cache, tetapi ini hanya digunakan untuk aplikasi
server yang sangat khusus. Dalam PC standar kita menemukan prosesor
dengan cache L1 dan L2.
Cache Level 1 dibangun di dalam inti
prosesor yang sebenarnya. Ini adalah bagian dari RAM, biasanya 8, 16,
20, 32, 64 atau 128 Kbytes, yang beroperasi pada frekuensi clock yang
sama dengan sisa CPU. Dengan demikian Anda bisa mengatakan cache L1
adalah bagian dari prosesor.
Cache L1 biasanya dibagi menjadi dua
bagian, satu untuk data dan satu untuk instruksi. Sebagai contoh, sebuah
prosesor Athlon mungkin memiliki 32 KB cache data dan 32 KB cache
instruksi. Jika cache adalah umum untuk kedua data dan instruksi, hal
itu disebut cache bersatu.
Cache L2
Cache L2 biasanya jauh lebih besar (dan
bersatu), seperti 256, 512 atau 1024 KB. Tujuan dari Cache L2 adalah
agar terus membaca dalam jumlah yang sedikit lebih besar data dari RAM,
sehingga data tersedia untuk cache L1.
Pada prosesor generasi sebelumnya, cache
L2 yang ditempatkan di luar chip: baik pada motherboard (seperti pada
prosesor Pentium asli), atau pada modul khusus bersama dengan CPU
(seperti pada Pentium II pertama).
Cache L2 memakan banyak chip yang
tertanam, seperti jutaan transistor yang dibutuhkan untuk membuat cache
besar. Cache terpadu ini dibuat dengan menggunakan SRAM (static RAM),
sebagai lawan RAM normal yang dinamis (DRAM).
Sementara DRAM dapat dibuat dengan
menggunakan satu transistor per bit (plus kapasitor), harganya 6
transistor (atau lebih) untuk membuat satu bit SRAM. Jadi 256 KB dari L2
cache akan membutuhkan lebih dari 12 juta transistor. Sehingga sejak
teknologi proses halus (seperti mikron 0,13 dan 0,09) dikembangkan
sehingga menjadi layak untuk mengintegrasikan cache L2 besar ke dalam
CPU yang sebenarnya.
Cache L1 dan L2 merupakan komponen
penting dalam desain prosesor modern. Cache sangat penting untuk
pemanfaatan frekuensi clock tinggi untuk proses teknologi modern. cache
L1 modern sangat efektif. Sekitar 96-98% kasus, prosesor dapat menemukan
data dan instruksi yang dibutuhkan dalam cache. Di masa depan, kita
dapat berharap untuk terus melihat CPU dengan cache L2 yang lebih besar
dan manajemen memori lebih maju. Karena ini adalah jalan ke depan jika
kita ingin mencapai pemanfaatan yang lebih efektif dari waktu jam CPU.