Cache Memory

Sebenarnya saya malu untuk memposting tulisan ini karena mengambil artikel dari blog lain akan tetapi untuk pengetahuan kita bersama ya gpp lah🙂 sore ini tanpa di sengaja saya baca artikel “Cache Memory” apa itu Cache ?

Mari kita temukan jawaban nya di bawah ini :

Cache adalah suatu tempat untuk menyimpan sesuatu secara sementara, mekanisme untuk mempercepat transfer data dengan cara menyimpan data yang telah di akses di suatu buffer, dengan harapan jika data yang sama akan diakses, akses akan menjadi lebih cepat. Dalam Internet, sebuah proxy cache dapat mempercepat proses browsing dengan cara menyimpan data yang telah diakses di komputer yang berjarak dekat dengan komputer pengakses. Jika kemudian ada user yang mengakses data yang sama, proxy cache akan mengirim data tersebut dari cache-nya, bukan dari tempat yang lama diakses. Dengan mekanisme HTTP, data yang diberikan oleh proxy selalu data yang terbaru, karena proxy server akan selalu mencocok kan data yang ada di cache-nya dengan data yang ada di server luar.
Dalam ilmu komputer , cache adalah komponen yang meningkatkan kinerja dengan transparan menyimpan data seperti bahwa masa depan bahwa data permintaan dapat dilayani lebih cepat. Data yang disimpan dalam cache merupakan nilai-nilai yang telah dihitung sebelumnya atau duplikat dari nilai aslinya yang disimpan di tempat lain. Jika diminta Untuk biaya yang efisien dan untuk mengaktifkan lookup data yang efisien, cache terbilang kecil. Namun demikian, cache telah terbukti sangat efektif dalam berbagai bidang komputasi karena akses pola khas aplikasi komputer memiliki wilayah referensi . Referensi menunjukkan lokalitas temporal jika data diminta lagi yang telah baru-baru ini sudah diminta. Referensi menunjukkan lokalitas spasial jika data yang diminta secara fisik disimpan dekat dengan data yang telah diminta.
Dalam terminologi TI, cache adalah suatu simpanan salinan data sementara, tempat menyimpan nilai yang terbaru atau tersering diakses agar data tersebut dapat lebih cepat diambil. Jika suatu data telah tersimpan di cache, data dapat dibaca dari sana dan tidak perlu diambil langsung dari medium penyimpanan aslinya, yang biasanya lebih lambat kecepatannya.
 
Sejarah Cache Memory
Penggunaan kata ini dalam TI dimulai pada tahun 1967 sewaktu redaktur IBM Systems Journal, Lyle R. Johnson, mengusulkannya kata ini sebagai istilah yang lebih deskriptif daripada high-speed buffer untuk menjelaskan pengembangan memori komputer pada Model 85, varian dari keluarga produk IBM System/360. Jurnal yang mengandung istilah ini diterbitkan pada tahun 1968 dan sejak itu istilah cache digunakan secara luas dengan maknanya yang sekarang dalam literatur komputer. Sejarah awal teknologi cache terkait erat dengan penemuan dan penggunaan memori virtual. Karena biaya pembuatan dan kekurangan pada memory semi-konduktor, komputer mainframe di awal 1960-an menggunakan hirarki kompleks dari memori fisik, dipetakan ke flat-virtual-memory yang digunakan oleh program. Teknologi memori akan meliputi semi-konduktor, inti magnetik, drum dan disk. Virtual memory dilihat dan digunakan oleh program akan menjadi flat (datar) dan cache akan digunakan untuk mengambil data dan instruksi ke dalam memori tercepat untuk diakses prosesor. Studi ekstensif dilakukan untuk mengoptimalkan ukuran cache. nilai optimum ditemukan sangat tergantung pada bahasa pemrograman yang digunakan dengan Algol membutuhkan terkecil dan Fortran dan Cobol membutuhkan ukuran cache terbesar.
Pada hari-hari awal teknologi mikro, akses ke memori hanya sedikit lebih lambat dari akses register. Tetapi sejak tahun 1980-an kesenjangan kinerja antara prosesor dan memori telah berkembang. Mikroprosesor telah maju lebih cepat daripada memori, terutama dalam hal frekuensi operasi mereka, sehingga kinerja memori menjadi bottleneck. Sementara itu secara teknis sangat mungkin untuk memiliki semua memori utama secepat CPU, namun dengan pertimbangan ekonomis yang telah diambil, yaitu menggunakan sebagian besar memori dengan kecepatan rendah, tetapi juga memperkenalkan sebagian kecil memori cache berkecepatan tinggi untuk mengurangi kesenjangan kinerja. Hal ini memberikan urutan besarnya kapasitas-lebih untuk hal yang sama dengan harga hanya performa gabungan sedikit berkurang.
Cache sebagai perantara antara CPU dengan memori. Ada 2 jenis  cache , yaitu:
1. Software cache (caching disk controller), akan mempercepat akses data pada disk dengan menyimpan data yang baru saja digunakan dalam memori.
2. Hardware cache (on−the−board chace), akan mempercepat akses memori itu sendiri dengan menyimpan data yang baru saja digunakan dalam memori.
Struktur Sistem Cache
 
Memori utama terdiri dari sampai dengan 2n word beralamat, dengan masing-masing word mempunyai n-bit alamat yang unik. Untuk keperluan pemetaan, memori ini dinggap terdiri dari sejumlah blok yang mempunyai panjang K word masing-masing bloknya. Dengan demikian, ada M = 2n/K blok. Cache terdiri dari C buah baris yang masing-masing mengandung K word, dan banyaknya baris jauh lebih sedikit dibandingkan dengan banyaknya blok memori utama (C << M). Di setiap saat, beberapa subset blok memori berada pada baris dalam cache. jika sebuah word di dalam blok memori dibaca, blok itu ditransfer ke salah satu baris cache. karena terdapat lebih banyak blok bila dibanding dengan baris, maka setiap baris tidak dapat menjadi unik dan permanen untuk dipersembahkan ke blok tertentu mana yang disimpan. Tag biasanya merupakan bagian dari alamat memori utama.
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 telah terbukti sangat efektif dalam berbagai bidang komputasi karena akses pola khas aplikasi komputer memiliki wilayah referensi . Referensi menunjukkan lokalitas temporal jika data diminta lagi yang telah baru-baru ini diminta sudah. Referensi menunjukkan lokalitas spasial jika data yang diminta secara fisik disimpan dekat dengan data yang telah diminta sudah.
Cache terdiri dari kolam entri. Setiap entri memiliki datum (sebuah nugget data) – salinan dari datum yang sama di beberapa backing store. Setiap entri juga memiliki tag, yang menentukan identitas dari datum di backing store yang masuk adalah salinan
cache memory
Elemen Rancangan Cache
  • Ukuran cache, disesuaikan dengan kebutuhan untuk membantu kerja memori. Semakin besar ukuran cache semakin lambat karena semakin banyak jumlah gerbang dalam pengalamatan cache.
  • Fungsi Pemetaan (Mapping), terdiri dari Pemetaan Langsung, Asosiatif, Asosiatif Set.Pemetaan langsung merupakan teknik yang paling sederhana, yaitu memetakkan masing-masing blok memori utama hanya ke sebuah saluran cache saja. Pemetaan asosiatif dapat mengatasi kekurangan pemetaan langsung dengan cara mengizinkan setiap blok memori utama untuk dimuatkan ke sembarang saluran cache.Hal ini menurut artikel dari Yulisdin Mukhlis, ST., MT
  • Algoritma Penggantian, terdiri dari Least Recently Used (LRU), First in First Out (FIFO), Least Frequently Used (LFU), Acak. Algoritma penggantian digunakan untuk menentukan blok mana yang harus dikeluarkan dari cache untuk menyiapkan tempat bagi blok baru. Ada 2 metode algoritma penggantian yaitu Write-through dan Write-back.Write-through adalah Cache dan memori utama diupdate secara bersamaan waktunya. Sedangkan Write-back melakukan update data di memori utama hanya pada saat word memori telah dimodifikasi dari cache.
  • Ukuran blok, blok-blok yang berukuran Iebih besar mengurangi jumlah blok yang menempati cache. Setiap pengambilan blok menindih isi cache yang lama, maka sejumlah kecil blok akan menyebabkan data menjadi tertindih setelah blok itu diambil. Dengan meningkatnya ukuran blok, maka jarak setiap word tambahan menjadi lebih jauh dari word yang diminta,sehingga menjadi lebih kecil kemungkinannya untuk di perlukan dalam waktu dekat.(Dikutip dari artilek milik Yulisdin “Mukhlis, ST., MT”)
  • Line size, Jumlah cache, Satu atau dua dua tingkat, kesatuan atau terpisah
 
Aplikasi Cache

  • CPU Cache adalah cache yang digunakan oleh unit pengolahan sentral dari sebuah komputer untuk mengurangi waktu rata-rata untuk mengakses memori . Cache-nya lebih kecil, memory yang lebih cepat yang menyimpan salinan data dari yang paling sering digunakan di memori utama. Selama mengakses memori cache, rata-rata latensi dari akses memori akan lebih dekat dengan latency cache daripada latency dari memori utama.
CPU cache
  • Cache Halaman atau Disk Cache adalah sebuah “transparan” penyangga yang didukung halaman disk disimpan di memori utama (RAM) oleh sistem operasi untuk akses cepat. Halaman cache biasanya diimplementasikan dalam kernel dengan paging manajemen memori, dan benar-benar transparan untuk aplikasi. Semua memori tidak langsung dialokasikan ke aplikasi yang biasanya digunakan untuk cache halaman. Hard disk membaca dalam kecepatan rendah dan akses acak memerlukan biaya mahal dibandingkan dengan memori utama (ini adalah mengapa upgrade RAM biasanya menghasilkan perbaikan signifikan dalam ‘kecepatan komputer dan responsif). Caching disk terpisah disediakan di sisi perangkat keras, oleh RAM atau NVRAM chip berdedikasi yang terletak baik dalam disk controller (di dalam hard disk drive; tepat disebut disk buffer ) atau dalam sebuah array disk controller . Memori seperti ini sebaiknya tidak keliru dengan cache halaman.
cache RAM
  • Web cache adalah cache dari dokumen web (misalnya, halaman HTML , gambar ) untuk mengurangi pemakaian bandwidth, server load, dan lag . Sebuah web cache menyimpan salinan dokumen melewati itu; kunjungan berikutnya mungkin puas dari cache jika kondisi tertentu terpenuhi.
Sedangkan Pengertian Cache Memory
 
Cache memory adalah tipe RAM tercepat yang ada, dan digunakan oleh CPU, hard drive, dan beberapa komponen lainnya. Cache memory ini ada diantara Main Memory dan Register pemroses, berfungsi agar pemroses tidak langsung mengacu pada memori utama agar kinerja dapat ditingkatkan. 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. Cache memori dapat menympan data sementara. Cara ini dimaksudkan untuk meningkatkan transfer data dengan menyimpan data yang pernah diakses pada cache tersebut, sehingga apabila ada data yang ingin diakses adalah data yang sama maka maka akses akan dapat dilakukan lebih cepat.Cache memori ini adalah memori tipe SDRAM yang memiliki kapasitas terbatas namun memiliki kecepatan yang sangat tinggi dan harga yang lebih mahal dari memori utama. Cache memori ini terletak antara register dan RAM (memori utama) sehingga pemrosesan data tidak langsung mengacu pada memori utama.
Letak Cache Memory 

 

L1 cache terintegrasi dengan chip prosesor, artinya letak L1 cache sudah menyatu dengan chip prosesor (berada di dalam keping prosesor). Sedangkan letak L2 cache, ada yang menyatu dengan chip prosesor, ada pula yang terletak di luar chip prosesor, yaitu di motherboard dekat dengan posisi dudukan prosesor. Pada era prosesor intel 80486 atau sebelumnya, letak L2 cache kebanyakan berada di luar chip prosesor. Chip cache terpisah dari prosesor, berdiri mandiri dekat chip prosesor. Sejak era prosesor Intel Pentium, letak L2 cache ini sudah terintegrasi dengan chip prosesor (menyatu dengan keping prosesor). Posisi L2 cache selalu terletak antara L1 cache dengan memori utama (RAM). Sedangkan L3 cache belum diimplementasikan secara umum pada semua jenis prosesor. Hanya prosesor-prosesor tertentu yang memiliki L3 cache.
Cache memory yang letaknya terpisah dengan prosesor disebut cache memory non integrated atau diskrit (diskrit artinya putus atau terpisah). Cache memory yang letaknya menyatu dengan prosesor disebut cache memory integrated, on-chip, atau on-die (integrated artinya bersatu/menyatu/ tergabung, on-chip artinya ada pada chip). 
L1 cache (Level 1 cache) disebut pula dengan istilah primary cache, first cache, atau level one cache. L2 cache disebut dengan istilah secondary cache, second level cache, atau level two cache.
 
letak cache

 
Cara Kerja Memory Cache
Jika prosesor membutuhkan suatu data, pertama-tama ia akan mencarinya pada cache. Jika data ditemukan, prosesor akan langsung membacanya dengan delay yang sangat kecil. Tetapi jika data yang dicari tidak ditemukan,prosesor akan mencarinya pada RAM yang kecepatannya lebih rendah. Pada umumnya, cache dapat menyediakan data yang dibutuhkan oleh prosesor sehingga pengaruh kerja RAM yang lambat dapat dikurangi. Dengan cara ini maka memory bandwidth akan naik dan kerja prosesor menjadi lebih efisien. Selain itu kapasitas memori cache yang semakin besar juga akan meningkatkan kecepatan kerja komputer secara keseluruhan.
Dua jenis cache yang sering digunakan dalam dunia komputer adalah memory caching dan disk caching. Implementasinya dapat berupa sebuah bagian khusus dari memori utama komputer atau sebuah media penyimpanan data khusus yang berkecepatan tinggi.
Implementasi memory caching sering disebut sebagai memory cache dan tersusun dari memori komputer jenis SDRAM yang berkecepatan tinggi. Sedangkan implementasi disk caching menggunakan sebagian dari memori komputer.
cara kerja cache memory
 
Kecepatan cache memory
 
Transfer data dari L1 cache ke prosesor terjadi paling cepat dibandingkan L2 cache maupun L3 cache (bila ada). Kecepatannya mendekati kecepatan register. L1 cache ini dikunci pada kecepatan yang sama pada prosesor. Secara fisik L1 cache tidak bisa dilihat dengan mata telanjang. L1 cache adalah lokasi pertama yang diakses oleh prosesor ketika mencari pasokan data. Kapasitas simpan datanya paling kecil, antara puluhan hingga ribuan byte tergantung jenis prosesor. Pada beberapa jenis prosesor pentium kapasitasnya 16 KB yang terbagi menjadi dua bagian, yaitu 8 KB untuk menyimpan instruksi, dan 8 KB untuk menyimpan data. Transfer data tercepat kedua setelah L1 cache adalah L2 cache. Prosesor dapat mengambil data dari cache L2 yang terintegrasi (on-chip) lebih cepat dari pada cache L2 yang tidak terintegrasi. Kapasitas simpan datanya lebih besar dibandingkan L1 cache, antara ratusan ribu byte hingga jutaan byte, ada yang 128 KB, 256 KB, 512 KB, 1 MB, 2 MB, bahkan 8 MB, tergantung jenis prosesornya. Kapasitas simpan data untuk L3 cache lebih besar lagi, bisa ratusan juta byte (ratusan mega byte). 
 
 
Prioritas penyimpanan dan pengambilan data
Dalam mekanisme kerjanya, data yang akan diproses oleh prosesor, pertama kali dicari di L1 cache, bila tidak ada maka akan diambil dari L2 cache, kemudian dicari di L3 cache (bila ada). Jika tetap tidak ada, maka akan dicari di memori utama. Pengambilan data di L2 cache hanya dilakukan bila di L1 cahe tidak ada. Lebih jelasnya proses baca tulis data yang dilakukan oleh prosesor ke memori utama dapat dijelaskan sebagai berikut:
Ketika data dibaca/ditulis di memori utama (RAM) oleh prosesor, salinan data beserta address-nya (yang diambil/ditulis di memori utama) disimpan juga di cache. Sewaktu prosesor memerlukan kembali data tersebut, prosesor akan mencari ke cache, tidak perlu lagi mencari di memori utama.
Jika isi cache penuh, data yang paling lama akan dibuang dan digantikan oleh data yang baru diproses oleh prosesor. Proses ini dapat menghemat waktu dalam proses mengakses data yang sama, dibandingkan jika prosesor berulang-ulang harus mencari data ke memori utama.
Secara logika, kapasitas cache memory yang lebih besar dapat membantu memperbaiki kinerja prosesor, setidak-tidaknya mempersingkat waktu yang diperlukan dalam proses mengakses data. 
 
 
Metode Akses Memori
Terdapat empat jenis pengaksesan satuan data, sbb.:
  1. Sequential Access
  2. Direct Access
  3. Random Access
  4. Associative Access
 
Sequential Access 
– Memori diorganisasikan menjadi unit-unit data, yang disebut record.
– Akses dibuat dalam bentuk urutan linier yang spesifik.
– Informasi pengalamatan dipakai untuk memisahkan record-record dan untuk membantu proses pencarian.
– Mekanisme baca/tulis digunakan secara bersama (shared read/write mechanism), dengan cara berjalan menuju lokasi yang diinginkan untuk mengeluarkan record.
– Waktu access record sangat bervariasi.
– Contoh sequential access adalah akses pada pita magnetik.
 
Direct Access
– Seperti sequential access, direct access juga menggunaka shared read/write mechanism, tetapi setiap blok dan record memiliki alamat yang unik berdasarkan lokasi fisik.
– Akses dilakukan secara langsung terhadap kisaran umum (general vicinity) untuk mencapai lokasi akhir.
– Waktu aksesnya bervariasi.
– Contoh direct access adalah akses pada disk.
 
Random Access
– Setiap lokasi dapat dipilih secara random dan diakses serta dialamati secara langsung.
– Waktu untuk mengakses lokasi tertentu tidak tergantung pada urutan akses sebelumnya dan bersifat konstan.
– Contoh random access adalah sistem memori utama.
Associative Access
– Setiap word dapat dicari berdasarkan pada isinya dan bukan berdasarkan alamatnya.
– Seperti pada RAM, setiap lokasi memiliki mekanisme pengalamatannya sendiri.
– Waktu pencariannya tidak bergantung secara konstan terhadap lokasi atau pola access sebelumnya.
– Contoh associative access adalah memori cache.
 
Kinerja Memori
Ada tiga buah parameter untuk kinerja sistem memori, yaitu :
 
Waktu Akses (Access Time)
  • Bagi RAM, waktu akses adalah waktu yang dibutuhkan untuk melakukan operasi baca atau tulis.
  • Bagi non RAM, waktu akses adalah waktu yang dibutuhkan untuk melakukan mekanisme baca tulis pada lokasi tertentu.
Waktu Siklus (Cycle Time)
  • Waktu siklus adalah waktu akses ditambah dengan waktu transien hingga sinyal hilang dari saluran sinyal atau untuk menghasilkan kembali data bila data ini dibaca secara destruktif.
Laju Pemindahan (Transfer Rate)
  • Transfer rate adalah kecepatan pemindahan data ke unit memori atau ditransfer dari unit memori.
  • Bagi RAM, transfer rate sama dengan 1/(waktu siklus).
  • Bagi non-RAM, berlaku persamaan sbb :
TN = Waktu rata-rata untuk membaca atau menulis sejumlah N bit.
TA = Waktu akses rata-rata
N = Jumlah bit
R = Kecepatan transfer, dalam bit per detik (bps)
 
Tipe Fisik Memori
Ada dua tipe fisik memori, yaitu :
  1. Memori semikonduktor, memori ini memakai teknologi LSI atau VLSI (very large scale integration) Memori ini banyak digunakan untuk memori internal misalnya RAM.
  2. Memori permukaan magnetik, memori ini banyak digunakan untuk memori eksternal yaitu untuk disk atau pita magnetik.
 
Karakteristik Fisik
Ada dua kriteria yang mencerminkan karakteristik fisik memori, yaitu:
 
Volatile dan Non-volatile
– Pada memori volatile, informasi akan rusak secara alami atau hilang bila daya listriknya dimatikan.
– Pada memori non-volatile, sekali informasi direkam akan tetap berada di sana tanpa mengalami kerusakan sebelum dilakukan perubahan. Pada memori ini daya listrik tidak diperlukan untuk mempertahankan informasi tersebut. Memori permukaan magnetik adalah non volatile. Memori semikonduktor dapat berupa volatile atau non volatile.
 
Erasable dan Non-erasable
– Erasable artinya isi memori dapat dihapus dan diganti dengan informasi lain.
– Memori semikonduktor yang tidak terhapuskan dan non volatile adalah ROM.
Semoga apa yang saya share disini dapat bermanfaat bagi yang membutuhkan informasi mengenai cache memory, sama seperti halnya saya dulu ketika kuliah ditugaskan untuk mencari informasi yang berkaitan dengan cache memory.

 

 

2 Responses

Silahkan Tinggalkan Komentar

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: