Popular Post

Posted by : Unknown Minggu, 28 September 2014

Cache Memory

Nama  : Rizky Budhi Setiawan
Kelas  : 2IC01
NPM   : 27413962

a. Elemen Cache Memory

Memang terdapat banyak implementasi cache, hanya saja terdapat sedikit elemen-elemen dasar rancangan yang dapat mengklasifikasikan dan membedakan arsitektur cache. Adapun elemen yang akan dibahas adalah elemen pertama yaitu ukuran cache. Semakin besar cache maka semakin besar jumlah gate yang terdapat pada pengalamatan cache. Akibatnya adalah cache yang berukuran besar cenderung untuk lebih lambat dibanding dengan cache berukuran kecil (walaupun dibuat dengan teknologi rangkaian terintegrasi yang sama dan ditaruh pada keping dan board yang sama
Bagian ini menyediakan suatu uraian parameter perancangan cache dan laporan beberapa hasil yang umum. Kita adakalanya mengacu pada penggunaan cache pada high-performance Computing (HPC). HPC berhubungan dengan superkomputer dan perangkat lunak superkomputer, terutama untuk aplikasi ilmiah yang melibatkan sejumlah data besar, vektor, dan perhitungan matriks, dan penggunaan algoritma paralel.

  • Ukuran cache,
Menentukan ukuran memori cache sangatlah penting untuk mendongkrak kinerja komputer. Dari segi harga cache 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 yang besar (1MB) tetapi kinerjanya tidak bagus. Kemudian Intel pernah mengeluarkan prosesor tanpa cache 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 sekitar 128KB. Lalu berapa idealnya kapasitas cache? Sejumlah penelitian telah menganjurkan bahwa ukuran cache antara 1KB dan 512KB akan lebih optimum [STA96].
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)
Karena saluran cache lebih sedikit dibandingkan dengan blok memori utama, diperlukan algoritma untuk pemetaan blok-blok memori utama ke dalam saluran cache. Selain itu diperlukan alat untuk menentukan blok memori utama mana yang sedang memakai saluran cache. Pemilihan fungsi pemetaan akan menentukan bentuk organisasi cache. Dapat digunakan tiga jenis teknik, yaitu sebagai berikut :
a.       Pemetaan Langsung (Direct Mapping)
Pemetaan ini memetakan masing-masing blok memori utama hanya ke satu saluran cache saja. Jika suatu  blok 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 block yang di map ke line yang sama secara berulang-ulang, maka cache-miss sangat tinggi).
b.       Pemetaan Asosiatif  (Associative Mapping)
Pemetaan ini mengatasi kekurangan pemetaan langsung dengan cara mengizinkan setiap blok memori utama untuk dimuatkan ke sembarang saluran cache. Dengan pemetaan asosiatif, 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 paralel, sehingga pencarian data di cache menjadilama
c.    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. 
  • Algoritma Penggantian,
Algoritma penggantian adalah algoritma yang digunakan untuk memilih blok data mana yang ada di cache yang dapat diganti dengan blok data baru
Direct mapping tidak perlu algoritma,, Mapping pasti (tidak ada alternatif lain). Sedangkan Associative & Set Associative memerlukan algoritma diimplementasi dengan H/W (supaya cepat)’
Jenis algoritma:
1.     Least Recently used (LRU)
Blok yang diganti adalah blok yang paling lama di cache dan tidak digunakan
Kelebihan:
-       Paling efektif
-       
Mempunyai hit ratio tinggi       data yang sering digunakan saja yang ditaruh di cache
-       
Paling mudah diimplementasikan pada two-way set associative mapping (digunakan sebuah bit tambahan = USE bit, line yang direfer       USE bit = 1))
Contoh:
Kapasitas cache hanya 4 baris sedangkan jumlah blok data jauh lebih banyak. Jika urutan pengaksesan data adalah:
a b c d c b a b c kemudian datang data e maka data yang diganti adalah ???
Jawaban: d
Kalau data yang diakses sebelum data e adalah d, maka data yang diganti ???
Jawaban: a (a lebih lama tidak diakses dibanding d)

2.     First in first out (FIFO)
Blok yang diganti adalah blok yang paling awal berada di cache
Contoh:
Kapasitas cache hanya 4 baris sedangkan jumlah blok data jauh lebih banyak. Jika urutan pengaksesan data adalah:
a b c d c b a b c kemudian datang data e maka data yang diganti adalah ???
Jawaban: a (a paling lama/awal berada di cache)
Kalau data yang diakses sebelum data e adalah d, maka data yang diganti adalah ???
Jawaban: a (a paling lama/awal berada di cache)
3.     Least frequently used (LFU)
Blok yang paling jarang digunakan yang diganti
Setiap baris mempunyai counter
Contoh:
Kapasitas cache hanya 4 baris sedangkan jumlah blok data jauh lebih banyak. Jika urutan pengaksesan data adalah:
a b c d c b a b c a d kemudian datang data e maka data yang diganti adalah ???
Jawaban: d (d paling jarang diakses)
Kalau urutan data yang diakses sebelum data e adalah a b c d c b a b c a d d, maka data yang diganti adalah ???
Jawaban: (i) (nilai counter a sama dengan yang lain, tetapi karena a datang paling awal maka a berada pada baris paling awal)       FIFO
 (ii) (paling lama tidak diakses)       LRU

4.     Random
Penggantian blok dilakukan secara acak. Algoritma random adalah algoritma yang cukup sederhana juga selain algoritma FIFO. Dalam algoritma ini, halaman yang dipilih menjadi korban dipilih secara acak. Meskipun terdengar asal, tetapi algoritma ini relatif low cost, karena tidak memerlukan stack, queue atau counter. Dibandingkan dengan FIFO, rata-rata kasus menunjukkan page fault rate algoritma random lebih rendah daripada algoritma FIFO. Sedangkan dibandingkan dengan LRU, algorima random ini lebih unggul dalam hal memory looping reference , karena algoritma random sama sekali tidak memerlukan looping.
  • 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 :
1.     Blok – blok yang berukuran lebih besar mengurangi jumlah blok yang menempati cache. Karena isi cache sebelumnya akan ditindih.
2.     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 nilaioptimum yang pasti telah ditemukan. Ukuran antara 4 hingga 8 satuan yang dapat dialamati (word atau byte) cukup beralasan untuk mendekati nilai optimum [STA96].
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
  • Jumlah cache
Terdapat dua macam letak cache. Berada dalam keping prosesor yang disebut onchip cache atau cache internal. Kemudian berada di luar chip prosesor yang disebut off chip cache atau cache eksternal.
Cache internal diletakkan dalam prosesor sehingga tidak memerlukan buseksternal, akibatnya waktu aksesnya akan cepat sekali, apalagi panjang lintasan internal bus prosesor sangat pendek untuk mengakses cache internal. Cache internal selanjutnya disebut cache tingkat 1 (L1).
Cache eksternal berada diluar keping chip prosesor yang diakses melalui bus eksternal. Pertanyaannya, apakah masih diperlukan cache eksternal apabila telah ada cache internal? Dari pengalaman, masih diperlukan untuk mengantisipasi permintaan akses alamat yang belum tercakup dalam cache internal. Cache eksternal selanjutnya disebut cache tingkat 2 (L2). Selanjutnya terdapat perkembangan untuk memisah cache data dan cache instruksi yang disebutunified cache. Keuntungan unified cache adalah :
• Unified cache memiliki hit rate yang tinggi karena telah dibedakan antara informasi data dan informasi instruksi.
• 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 paralel proses dan perkiraan – perkiraan eksekusi yang akan terjadi. Kelebihan utama split cache adalah mengurangi persaingan antara prosesor instruksi dan unit eksekusi untuk mendapatkan cache, yang mana hal ini sangat utama bagi perancangan prosesor – prosesor pipelining.


b. Prinsip dari Cache Memory

Dalam dunia komputer dikenal dengan adanya cache (dibaca: kash) memory. Cache memory merupakan memori berkapasitas terbatas, berkecepatan tinggi yang lebih mahal dibanding memori utama. Cache memori terletak diantara memori utama dan register CPU, dan berfungsi agar CPU tidak langsung mengacu ke memori utama tetapi di cache memori yang kecepatan aksesnya lebih tinggi. Metode ini akan meningkatkan kinerja sistem. Dahulu cache disimpan di luar prosesor dan dapat ditambahkan untuk meningkatkan kinerja, saat ini cache ditanamkan di prosesor.
Memori komputer diorganisir ke dalam suatu hierarki. Ditingkatan yang paling tinggi (terdekat ke prosesor) menjadi register prosesor. Satu atau lebih tingkatan dari cache berikutnya. Ketika tingkatan multiple digunakan, maka ditandai dengan L1, L2, dan seterusnya untuk memori utama berikutnya, yang biasanya dibuat dari DynamicRandom Access Memory (DRAM). Semuanya mempertimbangkan internal sistem komputer. Hierarki melanjutkannya dengan memori eksternal, dengan tingkatan berikutnya secara umum menjadi hard-disk tetap, dan satu atau lebih tingkatan bawah yang terdiri dari media yang dapat dipindahkan seperti ZIP, disk optik, dan pita.
Dengan semakin menurunnya tingkat hierarki memori, semakin berkurang cost per bit, peningkatan kapasitas, dan waktu akses yang lebih lambat. Hal yang sangat enak untuk menggunakan hanya memori yang cepat, tetapi akan menjadi sangat mahal, kita mengorbankan waktu akses untuk biaya dengan menggunakan memori lebih lambat. Trik untuk mengorganisir program dan data dalam memori sehingga word memori umumnya diperlukan dalam memori yang lebih cepat.
Secara umum, ada kemungkinan bahwa pada waktu yang akan datang akses ke memori utama oleh prosesor akan menjadi lokasi akses terbaru. Sehingga cache secara otomatis mempertahankan salinan sebagian dari word terbaru yang digunakan dari DRAM. Jika cache dirancang dengan baik, maka sebagian besar waktu prosesor akan meminta word memori yang telah siap di dalam cache.


c. Organisasi Cache Memory pada Pentium & PC


1. Organisasi cache pentium 4
Evolusi: organisasi cache dilihat dengan jelas di dalam evolusi mikroprosesor intel 80386 tidak mencakup suatu cache on-chip. 80486 meliputi cache on-chip tunggal 8 kbyte, menggunakan ukuran baris 16 byte dan suatu organisasi asosiatif set empat ara. Semua prosesor pentium meliputi dua cache on-chip L1, satu untuk data dan satu untuk instruksi. Untuk pentium 4, cache data L1 adalah 8 kbyte, menggunakan ukuran baris 64 byte dan suatu organisasi asosiatif set empat arah.
.
A. Evolusi organisasi  dilihat jelas pada 
1. Evolusi microprosesor Intel 80386  tidak memiliki on-chip.
2. Cache 80486 menggunakan on-chip cache tunggal 8 byte dengan memakai saluran berukuran 16 byte.
3. Organisasi asosiatif set 4 pentium menggunakannya 2 on-chip cache.
4. Data cache -> operasi integer maupun floating point.
5. Data cache -> dua port dan menggunakan write-back policy.

B. Gambar Struktur Cache Data Internal Pentium [ANDE93]
C. Konsistensi Data Cache
•Data cache mendukung protokol -> yang dikenal sebagai MESI (modified/exclusive/shared/invalid). -> dirancang -> mendukung persyaratan konsitensi cache sistem multiprosesor dan organisasi pentium berprosesor tunggal.
• Tabel Keadaan-keadaan Saluran Cache MESI
M E S I
Modified Exclusive Shared Invalid
Saluran cache ini invalid? Ya Ya Ya Ya
Salinan memorynya… out of date valid valid __
Salinan ada dalam cache lain? Tidak Tidak Mungkin Mungkin
Suatu write pada saluran ini… Tidak Tidak Pergi Pergi
Pergi ke bus pergi ke bus ke bus dan langsung
Meng-update ke bus Cache
-> Modified: Saluran pada cache telah dimodifikasi (berbeda dengan memory utama).
-> Exclusive: Saluran pada cache sama seperti saluran pada memori utama dan tidak terdapat pada cache lainnya.
-> Shared: Saluran pada cache sama seperti pada saluran pada memori utama dan dapat berada pada cache lainnya.
-> Invalid: Saluran pada cache tidak berisi data yang valid.
Cache Control
1. Cache internal dikontrol oleh dua bit pada salah satu resgister kontrol, yang berlabel bit CD (cache disable) dan bit NW (Not writethrough).
2. Tabel Mode Pengoperasian Cache Pentium
Control Bits Operating Mode
CD NW Cache Fills Write-Throughs Invaliddates
0 0 Enabled Enabled Enabled
1 0 Disabled Enabled Enabled
1 1 Disabled Disabled Disabled



2. Organisasi Cache power PC
Organisasi cache power PC telah meningkatkan secara menyeluruh arsitektur dari kelompok power PC, mencerminkan kemudahan kinerja yang mengarahkan kekuatan bagi semua perancang mikroprosesor
A. Organisasi cache Power PC telah mengalami modifikasi dengan masing-masing model dalam kelompok PowerPC.

B. Gambar dibawah ini -> bentuk yang disederhanakan dari organisasi PowerPC 620. Unit-unit eksekusi inti merupakan arithmetic.

Gambar Diagram blok PowerPC 620


Add caption

C. Gambar di bawah ini menunjukkan Diagram Keadaan cache Power PC yang disederhanakan



III. ORGANISASI DRAM TINGKAT LANJUT
A. Bentuk diagram blok dasar memori utama masih berupa keping DRAM.
• Keping DRAM tradisional memiliki kendala dalam hal arsitektur internal, olah interface, dan interface untuk bus memori prosesor.
B. Enhanced DRAM
• Arsitektur DRAM baru yang paling sederhana  enhanced DRAM (EDRAM)
• Dibuat oleh Ramtron [BOND94]. EDRAM mengintegrasikan cache SRAM yang kecil pada keping DRAM generik.
• EDRAM mencakup beberapa feature lainnya yang dapat meningkatkan kinerja.

C. Cache DRAM
• Cache DRAM (CDRAM)  dibuat oleh Mitsubishi [HIDA90] = EDRAM.
• CDRAM mencakup cache SRAM cache SRAM yang lebih besar dari EDRAM (16 vs 2 kb).
D. Synchronous DRAM
• Pendekatan yang berbeda  meningkatkan kinerja DRAM  synchronous DRAM (SDRAM)
• SDRAM  bertukar data dengan prosesor yang disinkronkan dengan signal pewaktu eksternal dan bekerja dengan kecepatan penuh bus prosesor/memori tanpa mengenal keadaan wait.
 • Dengan menggunakan akses sinkron. DRAM memindahkan data ke dalam dan keluar di bawah kontrol waktu sistem

Referensi : 
http://asroidaulay.blogspot.com/2011/11/operasi-pembacaan-cache_970.html
http://tha-yunita.blogspot.com/2011/04/elemen-rancangan-pada-memori-cache.html
http://chrisanto92.blogspot.com/2013/10/prinsip-prinsip-elemen-cache-memory.html




Leave a Reply

Subscribe to Posts | Subscribe to Comments

- Copyright © Catatan Calon Insinyur - Date A Live - Powered by Blogger - Designed by Johanes Djogan -