Cache Memory

10
CACHE MEMORY Pada mulanya sistem komputer dirasakan masih sangat lambat kerjanya dibandingkan dengan kinerja CPU, sehingga perlu dibuat sebuah memori tambahan yang dapat membantu kerja memori utama tersebut dan dibuatlah sebuah memory yang dinamakan sebagai cache meory. Cache memory ini berasal dari kata cash. Dari istilah tersebut cache adalah sebuah tempat menyembunyikan atau tempat menyimpan sementara, sesuai defenisi tersebutlah cache memory dikatakan sebagai tempat menyimpan data sementara,cara ini dimaksudkan untuk meningkatkn transfer data dengan menyimpan semua data yang pernah/sering diakses pada cache tersebut sehingga apabila ada data yang akan diakses adalah data yang sama maka akses dapat dilakukan lebih cepat. Cache memory ini adalah memory bertipe SDRAM yang memiliki kapasitas terbatas namun memiliki kecepatan yang sangat tinggi dan tentunya harga dari cache memory tersebut sendiri sangatlah mahal dari pada memory utama. Cache memori ini terletak antar Register dan RAM sehingga pemrosesan data tidak langsung mengacu pada memori utama melainkan harus melewati cache memory terlebih dahulu. Setelah kita melihat bagan di atas maka kita dapat menyimpulkan bahwa pada saat CPU membaca sebuah word memory, maka dilakukan pemeriksaan untuk mengetahui apakah word tersebut berada dalam cache memory atau tidak. Bila ada dalam cache memory maka dilakukan pengiriman ke CPU dan sebaliknya apabila di dalam cache memory data/word tersebut tidak ada maka akan dilajutkan pencarianya di dalam memory utama, selanjutnya blok yang berisi sejumlah word tersebut dikirim ke cache memory dan word yang diminta CPU akan segera dikirimkan oleh Cache Memory. Dengan begitu kita dapat mengetahui betapa pentingnya cache memori dalam system computer sehingga proses pencarian data (word) lebih efisien, mengingat bahwa Cache memory membuat salinannya sehingga lebih cepat diakses oleh processor, namun walaupun cache memory ini sangat cepat bukan berarti cache memory ini bisa menggantikan Main Memory, karena cache memory hanyalah memiliki memory yang sangat kecil sedangkan Main Memory memiliki kelebihan dalam

description

Perkembangan Cache Memory

Transcript of Cache Memory

CACHE MEMORY

Pada mulanya sistem komputer dirasakan masih sangat lambat kerjanya dibandingkan dengan kinerja CPU, sehingga perlu dibuat sebuah memori tambahan yang dapat membantu kerja memori utama tersebut dan dibuatlah sebuah memory yang dinamakan sebagai cache meory. Cache memory ini berasal dari kata cash. Dari istilah tersebut cache adalah sebuah tempat menyembunyikan atau tempat menyimpan sementara, sesuai defenisi tersebutlah cache memory dikatakan sebagai tempat menyimpan data sementara,cara ini dimaksudkan untuk meningkatkn transfer data dengan menyimpan semua data yang pernah/sering diakses pada cache tersebut sehingga apabila ada data yang akan diakses adalah data yang sama maka akses dapat dilakukan lebih cepat. Cache memory ini adalah memory bertipe SDRAM yang memiliki kapasitas terbatas namun memiliki kecepatan yang sangat tinggi dan tentunya harga dari cache memory tersebut sendiri sangatlah mahal dari pada memory utama. Cache memori ini terletak antar Register dan RAM sehingga pemrosesan data tidak langsung mengacu pada memori utama melainkan harus melewati cache memory terlebih dahulu.

Setelah kita melihat bagan di atas maka kita dapat menyimpulkan bahwa pada saat CPU membaca sebuah word memory, maka dilakukan pemeriksaan untuk mengetahui apakah word tersebut berada dalam cache memory atau tidak. Bila ada dalam cache memory maka dilakukan pengiriman ke CPU dan sebaliknya apabila di dalam cache memory data/word tersebut tidak ada maka akan dilajutkan pencarianya di dalam memory utama, selanjutnya blok yang berisi sejumlah word tersebut dikirim ke cache memory dan word yang diminta CPU akan segera dikirimkan oleh Cache Memory. Dengan begitu kita dapat mengetahui betapa pentingnya cache memori dalam system computer sehingga proses pencarian data (word) lebih efisien, mengingat bahwa Cache memory membuat salinannya sehingga lebih cepat diakses oleh processor, namun walaupun cache memory ini sangat cepat bukan berarti cache memory ini bisa menggantikan Main Memory, karena cache memory hanyalah memiliki memory yang sangat kecil sedangkan Main Memory memiliki kelebihan dalam memorinya yang lebih besar. Dengan begitu, Cache memory dan main memory bersifat saling melengkapi dan menyempurnakan satu sama lain sehingga proses pemanggilan data oleh CPU lebih efisien. Dilihat dari tempat penyimpanan/lokasinya Cache memori ada dua macam, yaitu Cache memori yang terdapat pada internal processor dan Cache Memory yang berada di luar

1. Cache Memory yang berada pada internal processor

Cache memory jenis ini kecepatan aksesnya sangat tinggi dan harganya sangat mahal. Hal ini bisa terlihat pada processor yang berharga mahal seperti P4, P3, AMD-Athlon, dll. Semakin tinggi kapasitas L1, L2 cache memori maka semakin mahal dan semakin cepat processor.

2. Cache memori yang terdapat di luar processor

Cache ini berada pada motherboard, memori jenis ini kecepatan aksesnya sangat tinggi, meskipun tidak secepat cache memori jenis pertama (yang ada pada internal processor). Semakin besar kapasitasnya maka semakin mahal dan cepat. Hal ini bisa

kita lihat pada motherboard dengan beraneka ragam kapasitas cache memori, yaitu 256 kb, 512 kb, 1 Mb, 2 Mb, dll.

Cache memory juga sering dikatakan sebagai perantara antara CPU dengan Memory karena didalam sebuah cache terdapat 2 cache lagi yang bisa mengatur kecepatan transferan data ke processor dari memory utama dan kedua cache tersebut yaitu :

a) Software Cache (Cacheing disk Controller),

Sofware Cache inilah yang akan mempercepat akses data pada disk dan dia akan menyimpan semua data yang baru digunakan di dalam memory.

b) Hadware Cache(on-the-board cache)

Hadware Cache ini juga sangat berpengaruh dalam mempercepat akses memory itu sendiri. Tanpa Cache ini software Cache tak akan berfungsi dengan baik karena mereka saling ketergantungan.

2.1 Jenis Cache Memory

Cache memory ada 3 macam antara lain:

1.Cache level 1 (L1)

Cache L1 merupakan bagian dari chip mikroprosesor atau bagian internal dari chip prosesor. Kapasitasnya berkisar antara 8 – 256 Kb dan letak dari L1 sudah menyatu dengan chip processor (berada di dalam kepingan processor). Cache L1 juga sering disebut sebagai primary cache, first cache atau level one cache.

2.Cache level 2 (L2)

Cache L2 adalah bukan merupakan bagian dari chip mikroprosesor. Cache ini sering tercantum di dalam iklan-iklan komputer. Cache level 2 (L2) terdiri dari chip-chip SRAM. Kapasitasnya berkisar antara 64 Kb s.d. 2 Mb dan letak dari Cache ada yang menyatu dengan chip processor, adapula yang terletak di luar chip processor yaitu berada dalam mainboard dekat dengan dudukan processor pada era processor intel 80486 atau sebelumnya, letak L2 cache kebanyakan berada diluar chip processor. Chip cache terpisah dari processor, berdiri mandiri dekat chip Processor. Sejak era processor Intel Pentium, letak L2 cache ini sudah terintegerasi dengan chip processor (menyatu dengan kepingan processor), posisi L2 cache selalu terletak antara L1 cache dengan memory utama (RAM) dan L2 ini disebut sebagai secondary cache, second level cache, atau level two cache.

3.Cache level 3(L3)

Cache L3 ini terletak pada mainboard atau motherboard atau merupakan cache yang

terpisah dari chip mikroprosesor. Cache jenis ini biasanya hanya terdapat pada komputer-

komputer yang sangat canggih. Cache level 3(L3) sering diistilahkan L2 Advanced transfer

Transfer data dari L1 cache ke processor terjadi paling cepat dibandingkan L2 cache maupun L3 Cache. Kecepatan dari L1 mendekati kecepatan register.L1 cache tidak bisa dilihat dengan mata telanjang. L1 cache adalah lokasi pertama yang diakses oleh processor ketika mencari pasokan data. Kapasitas simpanan datanya paling kecil antara puluhan hingga ribuan byte tergantung jenis processor.

Transefer data tercepat kedua setelah cache L1 adalah L2 Cache. Processor dapat mengambil data dari Cache L2 yang terintegerasi(on-chip) lebih besar dibandingkan L1 cache, antara ratusan ribu byte hingga jutaan byte, ada yang 128 KB, 256 KB, 512 KB, 1MB, 2MB bahkan 8

MB tergantung jenis processornya. Kapasitas simpan data untuk L3 cache lebih besar lagi, bisa ratusan juta Byte(ratusan mega byte).

Cache tidak bisa di-upgrade beda dengan komponen lain (seperti VGA card, memori card, dll). Hal tersebut karena harus sesuai dengan tipe prosesor yang kita inginkan. Selain cache, sistem operasi juga menggunakan memori virtual, yaitu ruang kosong pada HDD yang berfungsi untuk meningkatkan kapasitas RAM. Jadi urutan sebuah proses dari komputer dalam mencari data atau instruksi program, prosesor memakai urutan sebagai berikut : (1) L1, (2) L2, (3) RAM, (4) HDD atau CD. Masing-masing memori atau media penyimpan urutan yang berada diurutan belakang akan lebih lambat dibanding urutan lebih depan.

Terdapat perkembangan untuk memisah cache data dan cache instruksi yang disebut unified cache yang memiliki keuntungan, yaitu memiliki hit rate yang tinggi karena telah dibedakan antara informasi data dan informasi instruksi. Selain itu hanya sebuah cache saja yang perlu dirancang dan diimplementasikan. Namun terdapat kecenderungan untuk menggunakan split cache, terutama pada mesin-mesin superscalar seperti Pentium dan PowerPC yang menekankan pada parallel proses dan perkiraan-perkiraan eksekusi yang akan terjadi. Kelebihan utama split cache adalah mengutangi persaingan antara prosesor instruksi dan unit eksekusi untuk mendapatkan cache, yang mana hal ini sangat utama bagi perancangan prosesor-prosesor pipelining.

2.2 Perbedaan Memory Dan Chace Memory

Sebenarnya seperti ini skema sebuah memory :

Berbicara mengenai memori, sering terjadi penyempitan persepsi dan pengertian mengenai komponen ini. Ada pengertian pada beberapa orang bahwa memori itu adalah ‘komponen’ yang berbentuk segi empat dengan beberapa pin di bawahnya. Komponen ini disebut memory module. Padahal, memori itu adalah suatu penamaan konsep yang bisa menyimpan data dan program. Kemudian ditambah dengan kata internal, yang maksudnya adalah terpasang langsung pada motherboard. Dengan demikian, pengertian memory internal sesungguhnya itu dapat berupa :

1. First-Level (L1) Cache

2. Second-Level (L2) Cache

3. Third-Level (L3) Cache

4. Memory Module.

Akan tetapi, ada juga pengelompokan internal memori seperti:

1. RAM (Random Access Memory).

2. ROM (Read Only Memory).

Selain perbedan kecepatan haraga cache memory lebih mahal dari pada memory

2.3 Elemen Rancangan

2.3.1 Ukuran Cache

Semakin besar kapasitas dari sebuah cache tidak berarti semakin cepat prosesnya, dengan ukuran besar maka akan terlalu banyak gate pengalamatannya sehingga akan memperlambat proses. Kita bisa melihat beberapa merek processor, misalnya AMD mengeluarkan processor K5 dan K6 dengan cache yang besar (1 MB) tetapi kinerjanya tidak bagus. Kemudian Intel pernah mengeluarkan processor tanpa cache untuk alas an harga yang murah, yaitu seri Intel Celeron pada tahun 1998-an hasil kinerjanya sangat buruk terutama untuk operasi data besar, floating point, dan 3D. Karena kinerja cache sangat sensitif terhadap sifat beban kerja, maka tidaklah mungkin untuk mencapai ukuran cache yang optimum. Sejumlah penelitian telah menganjurkan bahwa ukuran cache yang ideal adalah antara 1 KB dan 512 KB.

2.3.2 Ukuran Blok

Adanya sifat lokalitas referensi menyebabkan nilai ukuran blok sangatlah penting. Apabila blok berukuran besar ditransfer ke cache akan menyebabkan hit ratio mengalami penurunan karena banyaknya data yang dikirim di sekitar referensi. Tetapi bila 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 setiap pengambilan blok menindih isi cache yang lama, maka sejumlah kecil blok akan menyebabkan data menjadi tertindih setelah blok itu diambil.

o Dengan meningkatnya ukuran blok maka jarak setiap word tambahan menjadi lebih jauh dari word yang diminta, sehingga menjadi lebih kecil kemungkinannya digunakan dengan 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.

2.3.3 Mapping (Pemetaan)

Saluran cache lebih sedikit dibandingkan dengan blok memori utama sehingga diperlukan algoritma untuk pemetaan blok-blok memori utama ke dalam saluran cache. Selain itu, diperlukan juga alat untuk menentukan blok memori utama mana yang sedang memakai saluran

cache. Pemilihan fungsi pemetaan akan menentukan bentuk organisasi cache. Terdapat tiga metode yang digunakan yaitu:

1. Pemetaan Langsung (Direct Mapping)

Pemetaan langsung adalah teknik yang paling sederhana, yaitu teknik ini memetakan blok memori utama hanya ke sebuah saluran cache saja. Jika suatu block ada di cache, maka tempatnya sudah tertentu. Keuntungan dari direct mapping adalah sederhana dan murah. Sedangkan kerugian dari direct mapping adalah suatu blok memiliki lokasi yang tetap (jika program mengakses 2 blok yang di map ke line yang sama secara berulang-ulang, maka cache-miss sangat tinggi).

2. Pemetaan Asosiatif (Associative Mapping)

Pemetaan asosiatif mengatasi kekurangan pemetaan langsung dengan cara mengizinkan setiap blok memori utama untuk dimuatkan ke sembarang saluran cache. Dengan pemetaan assosiatif, terdapat fleksibilitas penggantian blok ketika blok baru dibaca ke dalam cache. Kekurangan pemetaan asosiatif yang utama adalah kompleksitas rangkaian yang diperlukan untuk menguji tag seluruh saluran cache secara parallel, sehingga pencarian data di cache menjadi lama.

3. Pemetaan Asosiatif Set (Set Associative Mapping)

Pada pemetaan ini, cache dibagi dalam sejumlah sets. Setiap set berisi sejumlah line. Pemetaan asosiatif set memanfaatkan kelebihan-kelebihan pendekatan pemetaan langsung dan pemetaan asosiatif.

2.4 Algoritma Penggantian

Algoritma penggantian adalah suatu mekanisme pergantian blok-blok dalam memori cache yang lama dengan data baru. Dalam pemetaan langsung tidak diperlukan algoritma ini, namun dalam pemetaan assosiatif dan asosiatif set, algoritma ini mempunyai peranan penting untuk meningkatkan kinerja cache memori.

Banyak algoritma penggantian yang telah dikembangkan, algoritma yang paling efektif adalah Least Recently Used (LRU), yaitu mengganti blok data yang terlama berada dalam cache dan tidak memiliki referensi. Algoritma lainnya adalah First In First Out (FIFO), yaitu mengganti blok data yang awal masuk. Kemudian Least Frequently Used (LFU) adalah mengganti blok data yang mempunyai referensi paling sedikit. Teknik lain adalah algoritma Random, yaitu penggantian tidak berdasarkan pemakaian datanya, melainkan berdasar slot dari beberapa slot kandidat secara acak.

2.5 Write Policy

Apabila suatu data telah diletakkan pada cache maka sebelum ada penggantian harus dicek apakah data tersebut telah mengalami perubahan. Apabila telah berubah maka data pada memori utama harus di-update. Masalah penulisan ini sangat kompleks, apalagi memori utama dapat diakses langsung oleh modul I/O, yang memungkinkan data pada memori utama berubah Lalu

bagaimana dengan data yang telah dikirim pada cache? Tentunya perbedaan ini menjadikan data tidak valid.

Teknik yang dikenal diantaranya, write through, yaitu operasi penulisan melibatkan data pada memori utama dan sekaligus pada cache memori sehingga data selalu valid. Kekurangan teknik ini adalah menjadikan lalu lintas data ke memori utama dan cache sangat tinggi sehingga mengurangi kinerja system, bahkan bisa terjadi hang.

Teknik lainya adalah write back, yaitu teknik meminmasi penulisan dengan cara penulisan pada cache saja. Pada saat akan terjadi penggantian blok data cache maka baru diadakan penulisan pada memori utama. Masalah yang timbul adalah manakala data di memori utama belum di-update telah diakses modul I/O sehingga data di memori utama tidak valid.

Penggunaan multi cache terutama untuk multi prosesor akan menjumpai masalah yang lebih kompleks. Masalah validasi data tidak hanya antara cache dan memori utama saja, namun antar cache juga harus diperhatikan. Pendekatan penyelesaian masalah yang dapat dilakukan adalah dengan :

• Bus Watching with Write Through

Yaitu setiap cache controller akan memonitoring bus alamat untuk mendeteksi adanya operasi tulis. Apabila ada operasi tulis di alamat yang datanya digunakan bersama maka cache controller akan menginvalidasi data cache-nya.

• Hardware Transparency

Yaitu adanya perangkat keras tambahan yang menjamin semua updating data memori utama melalui cache direfleksikan pada seluruh cache yang ada.

• Non Cacheable Memory

Yaitu hanya bagian memori utama tertentu yang digunakan secara bersama. Apabila ada pengaksesan data yang tidak di-share merupakan kegagalan cache.

2.6 Perkembangan Cache Memory

2.6.1 Sejarah Perkembangan Cache Memory

Pentium diluncurkan sekitar awal tahun ’90-an, tahun 1993 tepatnya. Pentium merupakan lompatan besar dalam sejarah prosesor X86 dimana arsitektur prosesor 32-bit mengalami perubahan yang sangat besar. Hal ini menyebabkan kecepatan Pentium ( 80586 atau singkatnya 586 ) secara clock-for-clock dengan prosesor 486 ( generasi sebelumnya ) jauh lebih cepat.

Dimulai dengan kecepatan 60 Mhz sampai 233 Mhz, prosesor ini telah membuat revolusi baru dalam dunia PC. Pada versi awalnya ( Pentium 60 Mhz ) prosesor ini pernah membuat heboh di kalangan dunia PC karena menurut seorang profesor, prosesor ini telah melakukan kesalahan perhitungan jika dilakukan kombinasi perhitungan perkalian dan pengakaran. Hal ini diakui oleh Intel yang lalu menarik kembali seluruh prosesor Pentium 60 Mhz sekaligus menghapus armada prosesor 60 dan 66 Mhz yang lalu diganti dengan Pentium 75 Mhz. Di Indonesia, entah di negara

lain, penulis mengamati kalau prosesor Pentium yang paling banyak dipakai adalah prosesor Pentium 133 Mhz, mungkin anda pembaca pernah memilikinya ?

Intel membuat chipset Pentium ini mulai dari FX, HX, VX sampai yang mampu mendukung Pentium versi akhir dengan MMX, chipset TX , bentuk pengepakan prosesornya adalah Socket-7.

Pentium mengalami sedikit perubahan arsitektur seiring dengan perkembangan teknologi dengan diperkenalkannya instruksi multimedia baru yang disebut MMX pada tahun 1994. Meskipun digemborkan oleh Intel kalau prosesor dengan kemampuan ini dapat meningkatkan pengalaman multimedia ( multimedia experience ) sampai 30-50%, tetapi pada kenyataannya kumpulan instruksi ini banyak tidak terpakai oleh para programmer multimedia ( terutama game ). Tetapi instruksi MMX ini merupakan cikal bakal dari instruksi SIMD ( Single Instruction Multiple Data ) yang sejak itu mulai dikembangkan. Instruksi 3DNow! dari AMD sebagai contoh merupakan penyempurnaan dari instruksi MMX, demikian pula ISSE ( Internet Streaming SIMD Extension ) milik Intel sendiri.