Selasa, 17 November 2015

CACHE MEMORY

Pengertian Cache Memori

Definisi Cache

Cache adalah memori yg lebih kecil, lebih cepat yang menyimpan salinan data dari yang paling sering digunakan memori utama lokasi.

Definisi Cache Memory
Cache berasal dari kata cash yakni sebuah tempat menyembunyikan atau tempat menyimpan sementara. Sesuai definisi tersebut Cache Memory adalah tempat menyimpan 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 terletak antara register dan memory utama sehingga pemrosesan data tidak langsung mengacu pada memori utama. Penggunaan cache ditujukan untuk meminimalisir terjadinya bottleneck dalam aliran data antara processor dan RAM. Sedangkan dalam terminologi software, istilah ini merujuk pada tempat penyimpanan sementara untuk beberapa file yang sering diakses (biasanya diterapkan dalam network).
Cache memory adalah memori sesaat yang memiliki kecepatan tinggi dengan ukuran yang kecil. Memori ini bertugas untuk menyimpan salinan perintah / instruksi yang selalu diakses oleh CPU. Tugas Cache memory adalah sebagai penghubung perbedaan kecepatan antara CPU dan Memori Utama. Dalam implementasinya jenis memori yang digunakan untuk cache adalah statik RAM (SRAM).


Bagan Cache Memory



Level Cache Memory
Cache memori ada tiga Jenis Atau level yaitu L1,L2 dan L3.
  •  Cache memori level 1 (L1) adalah cache memori yang terletak dalam prosesor (cache internal). Cache ini memiliki kecepatan akses paling tinggi dan harganya paling mahal. Ukuran memori berkembang mulai dari 8Kb, 64Kb dan 128Kb.Cache level 2 (L2) memiliki kapasitas yang lebih besar yaitu berkisar antara 256Kb sampai dengan 2Mb. Namun cache L2 ini memiliki kecepatan yang lebih rendah dari cache L1.
  •   Cache L2 terletak terpisah dengan prosesor atau disebut dengan cache eksternal.
  •   Cache level 3 hanya dimiliki oleh prosesor yang memiliki unit lebih dari satu misalnya dualcore dan quadcore. Fungsinya adalah untuk mengontrol data yang masuk dari cache L2 dari masing-masing inti prosesor.

 L1 CACHE, L2 CACHE, L3 CACHE
          L1 dan L2 Cache adalah memori sementara pada processor. Jadi ketika komputer dimatikan, maka ingatan yang ada pada processor pun akan hilang. L1 dan L2 mempunyai fungsi dan perbedaan, diantaranya adalah.


Fungsi Cache L1, L2, dan L3
  • Cache L1: Sejumlah kecil SRAM memori yang digunakan sebagai cache yang terintegrasi atau satu paket di dalam modul yang sama pada prosesor. L1 cache ini dikunci pada kecepatan yang sama pada prosesor. Berguna untuk menyimpan secara sementara instruksi dan data, dan memastikan bahwa prosesor memiliki supply data yang stabil untuk diproses sementara memori mengambil dan menyimpan data baru.
  • Cache L2: Fungsinya sama dengan L1 Cache, L2 Cache dikenal juga dengan nama secondary cache, adalah memory yang memiliki urutan kecepatan kedua (tipe memori yang paling cepat adalah L1 Cache) yang disediakan untuk mikroprosesor.
  • Cache L3: L3 cache memori khusus yang bekerja tangan-di-tangan dengan L1 dan L2 cache untuk meningkatkan kinerja komputer. L1, L2 dan L3 cache yangpemrosesan komputer unit ( CPU ) cache, ayat-ayat jenis lain dalam sistem cache seperti hard disk cache

Operasi Cache

Jika prosesor membutuhkan suatu data, pertama prosesor 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

Karakteristik Cache Memory
  • 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.


Fungsi dan Manfaat Cache Memory
Cache  memory berfungsi sebagai tempat penyimpanan sementara untuk data atau instruksi yang diperlukan oleh processor. Secara gampangnya, cache berfungsi untuk mempercepat akses data pada komputer karena cache menyimpan data/informasi yang telah diakses oleh suatu buffer, sehingga meringankan kerja processor.
Manfaat lain dari cache memory adalah bahwa CPU tidak harus menggunakan sistem bus motherboard untuk mentransfer data. Setiap kali data harus melewati bus sistem, kecepatan transfer data memperlambat kemampuan motherboard. CPU dapat memproses data lebih cepat dengan menghindari hambatan yang diciptakan oleh sistem bus.

"MEMORY INTERNAL"
Pengertian Memory Internal

Memory Internal adalah Memory yang dapat diakses secara langsung oleh prosesor. Memori internal memiliki fungsi sebagai pengingat. Dalam hal ini yang disimpan di dalam memori utama dapat berupa data atau program. Secara lebih rinci, fungsi dari memori utama adalah : Menyimpan data yang berasal dari peranti masukan sampai data dikirim ke ALU (Arithmetic and Logic Unit) untuk diproses Menyimpan daya hasil pemrosesan ALU sebelum dikirimkan ke peranti keluaran Menampung program/instruksi yang berasal dari peranti masukan atau dari peranti pengingat sekunder.

 Jenis - Jenis Memory Internal
ROM (Read Only Memory) : Merupakan perangkat keras pada komputer berupa chip memori semikonduktor yang isinya hanya dapat dibaca. Jenis memori ini datanya hanya bisa dibaca dan tidak bisa ditulis secara berulang-ulang. Memori ini berjenis non-volatile, artinya data yang disimpan tidak mudah menguap (hilang) walaupun catu dayanya dimatikan. Karena itu memori ini biasa digunakan untuk menyimpan program utama dari suatu sistem.
ROM pada komputer disediakan oleh vendor komputer dan berisi program atau data.Di dalam PC, ROM biasa disebut BIOS (Basic Input/Output System) atau ROM-BIOS. Instruksi dalam BIOS inilah yang akan dijalankan oleh mikroprosesor ketika komputer mulai dihidupkan.
Sampai sekarang dikenal beberapa jenis ROM yang pernah beredar dan terpasang pada komputer, antara lain PROM :

  • PROM (Progammable Read-Only-Memory) : Jika isi ROM ditentukan oleh vendor, PROM dijual dalam keadaan kosong dan kemudian dapat diisi dengan program oleh pemakai. Setelah diisi dengan program, isi PROM tak bisa dihapus.
  • EPROM (Erasable Programmable Read-Only-Memory) : Berbeda dengan PROM, isi EPROM dapat dihapus setelah diprogram. Penghapusan dilakukan dengan menggunakan sinar ultraviolet.
  • EEPROM (Electrically Erasable Programmable Read-Only0Memory) : EEPROM dapat menyimpan data secara permanen, tetapi isinya masih bisa dihapus secara elektris melalui program. Salah satu jenis EEPROM adalah Flash Memory. Flash Memory biasa digunakan pada kamera digital, konsol VIDEO GAME, dan cip BIOS.


RAM (Random Access Memory) : Merupakan jenis memori yang isinya dapat diganti-ganti selama komputer sihidupkan dan sebagai suatu penyimpanan data yang dapat dibaca atau ditulis dan dapat dilakukan secara berulang-ulang dengan data yang berbeda-beda. Jenis memori ini merupakan jenis volatile (mudah menguap), yaitu data yang tersimpan akan hilang jika catu dayanya dimatikan. Karena alasan tersebut, maka program utama tidak pernah disimpan di RAM. Random artinya data yang disimpan pada RAM dapat diakses secara acak. Modul memori RAM yang umum diperdagangkan berkapasitas 128 MB, 256 MB, 512 MB, 1 GB, 2 GB, dan 4 GB.
RAM dibagi lagi menjadi dua jenis, yaitu jenis Statik dan Dinamik. RAM statik menyimpan satu bit informasi dalam sebuah flip-flop. RAM statik biasanya digunakan untuk aplikasi-aplikasi yang tidak memerlukan kapasitas memori RAM yang besar. RAM dinamik menyimpan satu bit informasi data sebagai muatan. RAM dinamik menggunakan kapasitansi gerbang substrat sebuah transistor MOS sebagai sel memori elementer. Untuk menjaga agar data yang tersimpan RAM dinamik tetap utuh, data tersebut harus disegarkan kembali dengan cara membaca dan menulis ulang data tersebut ke memori. RAM dinamik ini digunakan untuk aplikasi yang memerlukan RAM dengan kapasitas besar, misalnya dalam sebuah komputer pribadi (PC).

Jenis - Jenis RAM
  • DRAM (Dynamic Random Access Memory) adalah jenis RAM yang menyimpan setiap bit data yang terpisah dalam kapasitor dalam satu sirkuit terpadu. Data yang terkandung di dalamnya harus disegarkan secara berkala oleh CPU agar tidak hilang. Hal ini membuatnya sangat dinamis dibandingkan dengan memori lainnya. Dalam strukturnya, DRAM hanya memerlukan satu transistor dan kapasitor per bit, sehingga memiliki kepadatan sangat tinggi.
  • SRAM (Static Random Access Memory) adalah jenis RAM (sejenis memori semikonduktor) yang tidak menggunakan kapasitor. Hal ini mengakibatkan SRAM tidak perlu lagi disegarkan secara berkala seperti halnya dengan DRAM. Ini juga sekaligus membuatnya memiliki kecepatan lebih tinggi dari DRAM. Berdasarkan fungsinya terbagi menjadi Asynchronous dan Synchronous.
  • EDORAM (Extended Data Out Random Accses Memory) adalah jenis RAM yang dapat menyimpan dan mengambil isi memori secara bersamaan, sehingga kecepatan baca tulisnya pun menjadi lebih cepat. Umumnya digunakan pada PC terdahulu sebagai pengganti Fast Page Memory (FPM) RAM. Seperti FPM DRAM, EDO RAM memiliki kecepatan maksimal 50MHz EDO RAM uga harus membutuhkan L2 Cache untuk membuat semuanya berjalan dengan cepat, namun jika user tidak memilikinya, maka EDO RAM akan berjalan jauh lebih lambat.
  • FPM RAM (Fast Page Mode DRAM) adalah model DRAM paling lama. Masalah yang sering muncul dari FPM DRAM adalah kecepatan transfernya yang lambat yakni maksimum 50MHz.
  • SDRAM (Synchronous Dynamic Random Acces Memory). SDRAM bukanlah sebuah ekstensi dari seri EDO RAM yang lama, namun merupakan tipe baru dari DRAM. SDRAM mulai berjalan dengan kecepatan transfer 66MHz, sementara mode halaman DRAM dan EDO yang lebih lama akan berjalan di maksimal 50MHz. SDRAM sekarang ini dapat berjalan dengan kecepatan 133MHz (PC133), dan bakan hingga 180MHz atau lebih tinggi. Untuk mempercepat kinerja processor, maka RAM generasi baru seperti DDR dan RDRAM biasanya dapat mendukung performa yang lebih baik.
  • DDR (Double Data Rate SDRAM). DDR pada dasarnya memiliki kecepatan transfer dua kali lipat daripada SDRAM. DDR akan beroperasi di 333MHz, dengan pengoperasian sebenarnya 166MHz * 2 (aka PC333 / PC2700) atau 133MHz*2 (PC266 / PC2100). DDR RAM juga kompatibel dengan SDRAM secara fisik, namun menggunakan bus parallel yang sama, sehingga membuat implemnetasi lebih mudah dibandingkan RDRAM, yang merupakan teknologi berbeda.
  • RDRAM (Rambus Dynamic Random Acces Memory) adalah salah satu tipe dari RAM dinamis sinkron yang diproduksi oleh Rambus Corporation menggunakan Bus Speed sebesar 800 MHz tetapi memiliki jalur data yang sempit (8 bit). RDRAM memiliki memory controller yang canggih sehingga tidak semua motherboard bisa mendukungnya. Contoh produk yang memakainya adalah 3dfx seri Voodoo4. RDRAM merupakan teknologi memory serial yang datang dengan tiga pilihan, yakni PC600, PC700, dan PC800. PC800 RDRAM didesain dengan double maximum kecepatan transfer daripada PC100 SDRAM, namun memiliki latensi tinggi. RDRAM memiliki multi channel, seperti pada motherboard Pentium 4, yang dapat menawarkan fungsi memori paling bagus, terutama ketika dipasangkan dengan memory PC1066 RDRAM.

  "MEMORY EKSTERNAL" 
    Pengertian Memory Eksternal
Memory Eksternal adalah memori tambahan yang berfungsi untuk menyimpan data atau program. Dengan kata lain memory ini termasuk perangkat keras untuk melakukan operasi penulisan, pembacaan dan penyimpanan data, di luar memori utama. Contoh: Hardisk, Flash Disk maupun Floppy Disk. Pada dasarnya konsep dasar memori eksternal adalah Menyimpan data bersifat tetap (non volatile), baik pada saat komputer aktif atau tidak.
Memori eksternal mempunyai dua fungsi utama yaitu sebagai penyimpan permanen untuk membantu fungsi RAM dan yang untuk mendapatkan memori murah yang berkapasitas tinggi bagi penggunaan jangka panjang.

Jenis - Jenis Memory Eksternal
 1. Berdasarkan Karakteristik Bahan

  • Punched Card atau kartu berlubang : Merupakan kartu kecil berisi lubang-lubang yang menggambarkan berbagai instruksi atau data. Kartu ini dibaca melalui puch card reader yang sudah tidak digunakan lagi sejak tahun 1979.
  • Magnetic disk : Magnetic Disk merupakan disk yang terbuat dari bahan yang bersifat magnetik, Contoh : floppy dan harddisk.
  • Optical Disk : Optical disk terbuat dari bahan-bahan optik, seperti dari resin (polycarbonate) dan dilapisipermukaan yang sangat reflektif seperti alumunium. Contoh : CD dan DVD.
  • Magnetic Tape : Sedangkan magnetik tape, terbuat dari bahan yang bersifat magnetik tetapi berbentuk pita, seperti halnya pita kaset tape recorder. 
2. Berdasarkan Jenis Akses Data
  • DASD (Direct Access Storage Device) : Mempunyai akses langsung terhadap data. Contohnya :  Magnetik (floppy disk, hard disk), Removeable hard disk (Zip disk, Flash disk), Optical Disk dll.
  • SASD (Sequential Access Storage Device) : Mempunyai akses data secara tidak langsung(berurutan), seperti pita magnetik.


Cache Design
  1. Ukuran cache
  2. Pemetaan (Mapping Function)
  3. Algoritma Penggantian (Replacement Algorithm)
  4. Write Policy
  5. Ukuran Blok
  6. Jumlah Cache


Ukuran Cache

Menentukan ukuran cache memory sangat penting untuk mendongkrak kinerja komputer. Dari segi harga cache memory sangat, 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.


Pemetaan (Mapping Function)

Karena saluran cache memory lebih sedikit dibandingkan dengan blok memori utama, maka diperlukan algoritma untuk pemetaan blok memori utama ke dalam saluran cache memory. Pemilihan terhadap fungsi pemetaan akan sangat menentukan bentuk organisasi cache memory. Telah kita ketahui bahwa cache memory mempunyai kapasitas yang kecil dibandingkan memori utama. Sehingga diperlukan aturan blok-blok mana yang diletakkan dalam cache memory.

Teknik Pemetaan
  1. Direct mapping
  2. Fully associative mapping
  3. Set associative mapping

Direct Mapping
Keuntungan menggunakan Direct Mapping antara lain:
  • Mudah dan murah diimplementasikan.
  • Mudah untuk menentukan letak salinan data main memory pada cache.


Kerugian menggunakan Direct Mapping antara lain:
  • Setiap blok main memory hanya dipetakan pada 1 line saja.
  • Terkait dengan sifat lokal pada main memory, sangat mungkin mengakses blok yang dipetakan pada line yang sama pada cache. Blok seperti ini akan menyebabkan seringnya sapu masuk dan keluar data ke/dari cache, sehingga hit ratio mengecil. Hit ratio adalah perbandingan antara jumlah ditemukannya data pada cache dengan jumlah usaha mengakses cache.

 Full associative mapping
  • Memungkinkan blok diletakkan di sebarang line yang sedang tidak terpakai.
  • Diharapkan akan mengatasi kelemahan utama Direct Mapping.
  • Harus menguji setiap cache untuk menemukan blok yang diinginkan.

  1. Mengecek setiap tag pada line
  2. Sangat lambat untuk cache berukuran besar.

  • Nomor line menjadi tidak berarti. Address main memory dibagi menjadi 2 field saja, yaitu tag dan word offset.
  • Keuntungan Associative Mapping: cepat dan fleksibel.
  • Kerugiannya: biaya implementasi. Misalnya : untuk cache ukuran 8 kbyte dibutuhkan 1024 x 17 bit associative memory untuk menyimpan tag identifier.

Set associative mapping
  • Merupakan kompromi antara Direct dengan Full Associative Mapping.
  • Membagi cache menjadi sejumlah set (v) yang masing-masing memiliki sejumlah line (k)
  • Setiap blok dapat diletakkan di sebarang line
  • Jika sebuah set dapat menampung X line, maka cache disebut memiliki Xway set associative cache.
  • Hampir semua cache yang digunakan saat ini menggunakan organisasi 2 atau 4-way set associative mapping.

Algoritma pergantian
  • Pada teknik direct mapping, jika sebuah blok akan disalinkan ke sebuah slot dan slot tersebut sedang terisi, maka blok yang baru tersebut langsung akan menggantikan blok yang lama.
  • Pada teknik fully associative dan set associative mapping, jika sebuah blok akan disalinkan ke slot cache dan semua slot saat itu penuh, maka harus ditentukan isi slot mana yang harus diganti. Untuk itu diperlukan suatu algoritma penggantian.

Algorima penggantian yang bisa digunakan adalah :
  • First In First Out (FIFO) : mengganti blok yang paling lama menempati cache.
  • Least Recently Used (LRU) : mengganti blok yang paling lama tidak  digunakan.
  • Least Frequently Used (LFU) : mengganti blok yang paling jarang digunakan.
  • Random : mengganti secara acak.


Write Policy

Write Policy adalah suatu keadaan apabila suatu data telah diletakkan pada cache memory maka sebelum ada penggantian harus dicek apakah data tersebut telah mengalami perubahan. Apabila telah berubah maka data pada memori utama harus di-update.

Ada 2 write policy yang biasa digunakan, yaitu:
  1. Write Through
  2. Write Back

  • Sebelum sebuah blok yang berada di dalam cache dapat diganti, harus diketahui apakah blok tersebut sudah diubah selama di cache atau tidak.
  • Bila belum diubah, blok lama dapat langsung ditindih.
  • Bila sudah diubah, maka isi memori utama harus diperbaharui.

Write Through
  • Penulisan dilakukan pada cache dan juga memori utama
  • Akan menyebabkan banyak trafik
  • Memperlambat proses penulisan


Write Back
  • Pada awalnya, perubahan hanya dilakukan di cache.
  • Sebuah bit akan diset apabila update terjadi.
  • Pada saat blok akan diganti, penulisan pada memori hanya dilakukan apabila bit tersebut dalam keadaan diset.
  • Setiap I/O harus mengakses langsung ke cache karena isi memori utama tidak valid.
  • Rangkaian menjadi rumit.

1 komentar: