Januari 03, 2015

Cache memory

Cache memory dapat didefinisikan sebagai tempat data atau informasi yang sifatnya sementara dan sering diakses oleh komputer. Cache memory sekarang ini digolongkan dua macam, yaitu cache level 1 dan cache level 2 atau sering juga diistilahkan dengan cache L1 dan L2. Prosesor-prosesor lama generasi x386 dan generasi sebelumnya, tidak menggunakan cache L1. Generasi terbaru saat ini prosesor sudah menggunakan cache memory yang berkembang sejak ukuran 8, 64, 128 KB. Sedangkan pada cache L2, prosesor-prosesor terbaru menggunakan ukuran 64, 128, 256, dan 512 KB, semua tergantung dari jenis dan tipe prosesor yang digunakan. Bahkan, cache pada server seperti pada intel Xeon dan intel Itanium ada yang mencapai ukuran 1 dan 2 Mb.

Sejarahnya
Pada awal digunakannya cache L2, cache tersebut ditanam pada motherboard atau ditanam terpisah dari core prosesornya. Komputer seri terbaru saat ini cache-cachenya sudah dibenamkan langsung pada inti prosesornya dan dikenal dengan istilah core. Dengan cara terbaru ini menyebabkan jarak pengaksesan prosesor ke cache akan semakin pendek sehingga berimbas pada waktu pengaksesan yang semakin singkat pula.
Terdapat dua jenis lokalitas di dalam cache memory, yaitu :
  1. lokalitas temporal
  2. lokalitas spasial.
Apa sih bedanya?
Cache dengan lokalitas temporal dirancang untuk menggunakan data atau instruksi yang sama secara berulang-ulang.
Cache dengan lokalitas spasial dirancang untuk mengantisipasi program-program yang membutuhkan pengaksesan secara berurutan.

Jalannya proses
Ketika pertama prosesor menjalankan perintah eksekusi prosesor tersebut akan mencari dan mengumpulkan informasi dari cache L1. Proses ini biasanya disebut dengan hit. Jika informasi yang dibutuhkan prosesor tidak tersedi pada cache L1, maka prosesor akan segera mencarinya di cache L2. Pencarian informasi di cache L2 ini biasanya memakan waktu lebih lama daripada pencarian informasi di cache L1.
Pada cache L2 terdiri dari dua komponen utama yaitu:
  1. data store
  2. tag RAM
Jelasin masing-masing
Data store dapat didefinisikan sebagai suatu ruang yang digunakan untuk menjaga aktualitas informasi atau data.
Tag RAM dapat didefinisikan sebagai suatu area kecil di dalam memori yang digunakan oleh cache untuk menjaga dan mengatur peletakan data di dalam cache.
Jumlah memori utama yang dikontrol oleh tag RAM dapat disimpan di dalam cache. Cache memory L2 pada PC model terbaru biasanya diatur oleh chipset, pada bagian nortbridge.

CACHE MEMORY
Cache memory merupakan lokasi data sementara antara prosesor dengan main memory. Penempatan cache memory ditujukan untuk mengurangi gap antara kecepatan prosesor dengan kecepatan main memory. Gambar 2.1. di bawah ini menunjukkan posisi cache memory yang diletakkan antara prosesor (CPU) dengan main memory. Sedangkan gambar 2.2. memperlihatkan sistem interkoneksi untuk cache memory.

Cache berasal dari kata cash. Dari istilah tersebut cache adalah tempat menyembunyikan atau tempat menyimpan sementara. Sesuai definisi tersebut cache memory adalah tempat menympan data sementara. Cara ini dimaksudkan untuk meningkatkan transfer data dengan menyimpan data yang pernah diakses pada cache memory tersebut, sehingga apabila ada data yang ingin diakses adalah data yang sama maka maka akses akan dapat dilakukan lebih cepat. Cache memory ini adalah memori tipe SDRAM yang memiliki kapasitas terbatas namun memiliki kecepatan yang sangat tinggi dan harga yang lebih mahal dari memori utama. Cache memory ini terletak antara register dan RAM (memori utama) sehingga pemrosesan data tidak langsung mengacu pada memori utama.

Karakteristik cache memory adalah sebagai berikut:
·         Kapasitas relatif lebih kecil dari main memory, tetapi memiliki kecepatan yang relativ lebih tinggi dibanding main memory;
·         Cache memory merupakan suatu memori buffer (salinan data) bagi memori utama;
·         Meskipun cache menggunakan informasi yang tersimpan dalam memori utama, tetapi ia tidak berhadapan secara langsung dengan memori utama;
·         Word yang disimpan didalam cache memory adalah word yang diambil dari main memory, yang dikerjakan sesuai perintah CPU.

2.2. Level Cache Memory
Hingga saat ini, cache memory terbagi atas tiga level yaitu L1, L2 dan L3. Cache memory memori level 1 (L1) adalah cache memory yang terletak dalam prosesor (internal cache). Cache memory ini memiliki kecepatan akses paling tinggi dan harganya paling mahal. Ukuran memori berkembang mulai dari 8KB, 64KB dan 128KB. Cache memory level 2 (L2) memiliki kapasitas yang lebih besar yaitu berkisar antara 256KB sampai dengan 2MB. Namun, cache memory L2 ini memiliki kecepatan yang lebih rendah dari cache memory L1. Cache memory L2 terletak terpisah dengan prosesor atau disebut dengan external cache.

Sedangkan cache memory level 3 hanya dimiliki oleh prosesor yang memiliki unit lebih dari satu misalnya dualcore dan quadcore. Fungsinya adalah untuk mengontrol data yang masuk dari tembolok L2 dari masing-masing inti prosesor. Level 2 atau L2 cache merupakan bagian dari strategi penyimpanan multi level untuk meningkatkan performa komputer. Terdapat tiga level cache yang digunakan pada komputer, yaitu L1, L2 dan L3 cache. Tiap-tiap cache tersebut menjembatani jarak (gap) diantara processor yang sangat cepat, dengan memori RAM (Random Access Memory) yang jauh lebih lambat.

Sementara desainnya terus mengalami perubahan, L1 cache biasanya telah terintegrasi (built in) ke dalam processor, sementara L2 cache biasanya terintegrasi pada motherboard (bersamaan dengan L2 cache). Namun, beberapa processor kini menggabungkan L2 cache serta L1 cache, dan bahkan beberapa diantaranya juga menggungkan L3 cache. Kecepatan yang paling tinggi terdapat pada L1 cache, kemudian menurun pada L2 dan L3 cache. Namun kebalikannya, semakin besar angka cache, maka semakin besar pula kapasitas penyimpanan datanya.

Tugas dari cache processor adalah untuk mengantisipasi data request, sehingga ketika pengguna mengakses sebuah program yang sering digunakan, sebagai contohnya, instruksi-instruksi yang dibutuhkan untuk menjalankan program tersebut telah siap digunakan, disimpan pada cache. Ketika hal ini terjadi, CPU dapat memproses request tanpa adanya jeda (delay), sehingga dapat meningkatkan CPU pertama-tama akan memeriksa L1 cache, diikuti dengan L2 dan L3 cache. Jika processor telah menemukan bit data yang dibutuhkan, maka disebut dengan cache hit. Namun jika cache tidak menyediakan bit data yang dibutuhkan, processor mendapatkan sebuah cache miss, dan data perlu ditarik dari RAM yang lebih lambat atau hard disk yang juga lebih lambat.

2.3. Kapasitas Cache
Menentukan ukuran cache memory sangatlah penting untuk mendongkrak kinerja komputer. Dari segi harga cache memory sangatlah mahal tidak seperti memori utama. Semakin besar kapasitas cache tidak berarti semakin cepat prosesnya, dengan ukuran besar akan terlalu banyak gate pengalamatannya sehingga akan memperlambat proses.

Kita bisa melihat beberapa merek prosesor di pasaran beberapa waktu lalu. AMD mengeluarkan prosesor K5 dan K6 dengan cache memory yang besar (1MB) tetapi kinerjanya tidak bagus. Kemudian Intel pernah mengeluarkan prosesor tanpa cache memory untuk alasan harga yang murah, yaitu seri Intel Celeron pada tahun 1998-an hasil kinerjanya sangat buruk terutama untuk operasi data besar, floating point, 3D. Intel Celeron versi berikutnya sudah ditambah cache memory sekitar 128KB. Lalu berapa idealnya kapasitas cache memory? Sejumlah penelitian telah menganjurkan bahwa ukuran cache antara 1KB dan 512KB akan lebih optimum.

2.4. Ukuran Blok
Elemen rancangan yang harus diperhatikan lagi adalah ukuran blok. Telah dijelaskan adanya sifat lokalitas referensi maka nilai ukuran blok sangatlah penting. Apabila blok berukuran besar ditransfer ke cache akan menyebabkan hit ratio mengalami penurunan karena banyaknya data yang dikirim disekitar referensi. Tetapi apabila terlalu kecil, dimungkinkan memori yang akan dibutuhkan CPU tidak tercakup. Apabila blok berukuran besar ditransfer ke cache, maka akan terjadi :
o   Blok-blok yang berukuran lebih besar mengurangi jumlah blok yang menempati cache. Karena isi cache sebelumnya akan ditindih.
o   Dengan meningkatnya ukuran blok maka jarak setiap word tambahan menjadi lebih jauh dari word yang diminta, sehingga menjadi lebih kecil kemungkinannya digunakan cepat.

Hubungan antara ukuran blok dan hit ratio sangat rumit untuk dirumuskan, tergantung pada karakteristik lokalitas programnya dan tidak terdapat nilai optimum yang pasti telah ditemukan. Ukuran antara 4 hingga 8 satuan yang dapat dialamati (word atau byte) cukup beralasan untuk mendekati nilai optimum.

1 komentar :