Rabu, 14 Mei 2008

Cache Memory

Memori berkecepatan tinggi yang mampu bekerjasama dengan CPU, bertindak sebagai buffer antara CPU dan memori utama yang lamban.

Memori berkapasitas terbatas, memori ini berkecepatan tinggi dan lebih mahal dibandingkan memory utama. Berada diantara memori utama dan register pemroses, berfungsi agar pemroses tidak langsung mengacu kepada memori utama tetapi di cache memory yang kecepatan aksesnya yang lebih tinggi, metode menggunakan cache memory ini akan meningkatkan kinerja sistem.


Cache memory adalah tipe RAM tercepat yang ada, dan digunakan oleh CPU, hard drive, dan beberapa komponen lainnya. Seperti halnya RAM, lebih banyak cache memory adalah lebih baik, akan tetapi biasanya cache pada CPU dan hard drive tidak dapat diupgrade menjadi lebih banyak. Contoh yang dapat dilihat misalnya adalah pada CPU Pentium II terdapat 512 KiloByte cache, dan pada hard drive IBM 9LZX SCSI terdapat 4 MegaBytes cache. Seperti halnya RAM, pada umumnya data akan dilewatkan dulu pada cache memory sebelum menuju komponen yang akan menggunakannya (misalnya CPU).

Selain itu cache memory menyimpan pula sementara data untuk akses cepat. Kecepatan cache memory juga menjadi unsur yang penting. Sebagai contoh, CPU Pentium II memilki cache sebesar 12 k, dan CPU Celeron memiliki cache sebesar 128 k, akan tetapi cache pada Pentium II berjalan pada 1/2 kali kecepatan CPU, sementara cache pada Celeron berjalan dengan kecepatan sama dengan kecepatan CPU. Hal ini merupakan tradeoff yang membuat kecepatan Celeron dalam hal-hal tertentu kadang-kadang malah bisa mengalahkan Pentium II.

L1 cache dan L2 cache

Kita mulai dengan pengertian cache (baca kes seperti di kalimat : bayar cash)

Merupakan memori berukuran kecil (baik dalam bentuk fisik maupun dalam ukuran kilobyte) namun berkecepatan sangat tinggi. Terletak pada Integrated Circuit yang sama dengan prosesor atau didekat prosesor. Dipergunakan untuk menyimpan secara temporer instruksi dan/atau data yang terakhir kali dipergunakan oleh CPU. Gunanya untuk menghemat waktu dalam mengakses kembali data tersebut.

Sewaktu data dibaca dari, atau ditulis ke memori/RAM (selanjutnya saya sebut memori), salinan beserta addressnya pada memori disimpan juga di cache, dengan anggapan bahwa kemungkinan prosesor akan kembali membutuhkannya dalam waktu yang tidak terlalu lama. Sewaktu data tersebut kembali diperlukan, prosesor akan membacanya dari cache dan tidak akan mencarinya di memori. Proses ini sangat menghemat waktu dalam mengakses suatu data.

Apabila cache telah ‘penuh’ maka akan ada data yang dibuang dari cache untuk kemudian diganti dengan data yang terakhir dicari/dipakai oleh prosesor.

L1 Cache bisa juga disebut Primary Cache, First Level Cache atau Level One Cache

Cache ini sangat cepat. Merupakan lokasi yang pertama kali diakses apabila prosesor membutuhkan/mencari suatu data. Kita tidak dapat melihat bentuk fisiknya secara mata telanjang, karena terintegrasi bersama chip prosesor. Pada prosesor Pentium kapasitasnya adalah 16 KB yang terbagi 2 bagian, 8 KB untuk instruksi dan 8 KB untuk data.

L2 Cache bisa juga disebut Secondary Cache, Second Level Cache atau Level Two Cache. Cache ini berkapasitas lebih besar namun kecepatannya lebih lambat dari L1 cache, terletak antara Primary Cache dan memori. Sampai era prosesor Intel 80486, L2 cache terletak diluar keping prosesor. Mulai era Pentium, L2 cache sudah diintegrasikan ke dalam keping prosesor. Kapasitasnya bervariasi sesuai varian Pentium. Data yang disimpan pada L2 cache ini akan dicari hanya jika data yang diperlukan tersebut tidak ditemukan pada L1 cache. Apabila tetap tidak ditemukan, maka prosesor akan meneruskan pencariannya di memori. Data yang ditemukan akan ditempatkan di cache memori dan data yang tersimpan di cache memori namun sudah lama tidak dipergunakan akan dihapus apabila cache memori telah penuh.

Penghapusan instruksi/data pada saat cache memori telah penuh mengikuti ketentuan tertentu (algoritma) yang telah ditetapkan oleh pembuat prosesor. Algoritma antara 2 produsen komputer tidak pasti sama. Begitu juga dengan metode penempatan data pada L1 dan L2.

Produsen I meng-copy seluruh data L1 pada L2. L2 = L1 + data lain
Produsen A menempatkan data selain data L1 pada L2. L2 ± L1
Masing masing dengan kelebihannya sendiri.

Pada kasus I, apabila sebuah device ingin menghapus suatu data, dia cukup hanya menghapus data pada L2, otomatis data yang sama pada L1 akan turut terhapus. Sedangkan pada kasus A, dia harus mengecek L1 dan L2.

Kelebihan kasus A adalah : dengan kapasitas cache yang sama, dia dapat menampung lebih banyak data.

Sebagai tambahan, pada super komputer dan komputer khusus berkecepatan sangat tinggi yang melayani komputasi dengan lalulintas instruksi dan data yang sangat kompleks (pemetaan DNA, analisa arah angin dan perubahan cuaca, dll), terdapat juga L3 yang berukuran dari 2 - 256 MB bahkan kabarnya ada yang sudah menggunakan L3 sebesar 1 GB (wuih). Karena pertimbangan harga (bisa mencapai $10000 US) dan juga pertimbangan bahwa proses kerja demikian tidak akan terjadi di server yang paling padat sekalipun (kalau yang ini saya agak kurang yakin) apalagi di workstation or stand alone PC, maka L3 tidak diimplementasikan secara umum pada semua jenis prosesor.

0 komentar: