Minggu, 24 April 2011

Elemen Rancangan pada memori Cache

  • 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 menjadi lama
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 nilai optimum 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 on chip 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 bus eksternal, 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 disebut unified 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.

Bagaimana agar bateray laptop tahan lama?

  1. Ketika laptop baru dibeli, bateray-nya masih kosong. Laptop tidak boleh langsung digunakan sekalipun charge listrik terpasang. Laptop harus dimatikan dulu, di-charge selama antara 4-8 jam hingga lampu indikatornya menunjukkan full charge (biasanya lampu indikator charge akan berwarna hijau).
  2. Jika Anda tidak sedang presentasi tetapi sedang bekerja rutin dengan laptop dikantor, lepaskan bateray laptop dan gunakan listrik langsung. Jika bateray terpasang, charge juga terpasang dalam banyak kejadian akan menyebabkan bateray cepat bocor. Walaupun laptop modern sering memiliki sirkuit yang memastikan baterai tidak digunakan bila charge terpasang, tapi suhu panas juga mempersingkat masa pakai baterai. Ingat, bateray laptop digunakan hanya ketika listrik tidak dapat digunakan langsung.
  3. Pastikan untuk mengkonfigurasi pengaturan bateray laptop Anda dengan tepat. Aturlah periode Sleep laptop Anda agar memungkinkan Anda untuk menonaktifkan layar dan hard disk setelah jangka waktu tertentu komputer tidak digunakan. Tentukan periode ini sesingkat mungkin untuk memaksimalkan masa pakai baterai.
  4. Nonaktifkan Bluetooth dan WiFi ketika tidak diperlukan. Ketika Anda menonton film, atau mengetik dokumen dan Anda tidak perlu online, menonaktifkan perangkat nirkabel. Hal ini akan membantu menghemat daya, sebab konsep Bluetooth dan WiFi adalah mengirim dan menerima signal walaupun Anda tidak menyadarinya dan ini menghabiskan daya. Lebih parah lagi jika kedua fitur ini Anda aktifkan ditempat yang sama sekali tidak ada signal.
  5. Kurangi mengkonfirasi layar terlalu terang. Disatu sisi layar lumayan terang adalah baik karena tulisan lebih jelas, tetapi disisi lain makin terang layar makin banyak daya yang digunakan.
  6. Sejalan dengan tip sebelumnya, Anda harus menonaktifkan screen saver. Terutama ditujukan untuk mencegah layar agar tidak terbakar, screen saver mengkonsumsi daya jauh lebih tinggi karena CPU aktif dan kartu video dan layar digunakan juga. Ini sama dengan menonton video pada laptop.
  7. Selain menonaktifkan Bluetooth dan perangkat nirkabel, juga melepaskan setiap perangkat eksternal ketika tidak diperlukan. Sebuah USB atau mouse nirkabel, memory stick USB, harddisk eksternal atau kartu PCMCIA yang tidak sedang digunakan pada laptop harus dilepas. Anda harus paham, semua perangkat tadi menggunakan daya dari laptop Anda.
  8. Periksa juga program startup Anda dan program aktif dan menutup program yang tidak perlu. Program-program startup yang terlalu banyak akan menyebabkan laptop loading lama. Loading lama akan membutuhkan banyak memory virtual sehingga terlalu banyak menggunakan akses hard disk.
  9. Jika Anda ingin mendengarkan musik, gunakan headset dan bukan speaker. Karena speaker laptop kecil maka walaupun volume musik sudah maksimal tetapi suara tidak maksimal diteling Anda. Jika volume Anda naikkan maka penggunaan daya juga bertambah besar.
  10. Update BIOS dan driver. Produsen komputer melakukan perbaikan software mereka sepanjang waktu untuk memperbaiki cara hardware digunakan. Memperbarui Bios akan memastikan bahwa Anda memiliki versi terbaru dan memberikan kompatibilitas maksimum dengan penghematan daya semua fitur sistem operasi. Hal yang sama berlaku untuk driver perangkat keras. Driver mengendalikan semua aspek dari perangkat keras, termasuk mode penghematan daya hardware.