Selasa, 01 Juli 2014

Memori

Memori  adalah bagian dari  komputer  tempat  program  – program  dan data  – data
disimpan. Bebarapa  pakar  komputer  (terutama  dari  Inggris)  menggunakan istilah   store atau storage untuk memori, meskipun kata storage sering digunakan untuk menunjuk ke penyimpanan disket. Tanpa  sebuah memori  sebagai  tempat  untuk  mendapatkan informasi  guna  dibaca  dan ditulis  oleh prosesor  maka  tidak  akan ada  komputer  – komputer  digital  dengan sistem penyimpanan program.
Walaupun konsepnya  sederhana, memori  komputer  memiliki  aneka  ragam  jenis,
teknologi, organisasi, unjuk  kerja  dan harganya. Dalam bab ini akan dibahas mengenai memori
internal  dan bab selanjutnya  membahas  memori  eksternal. Perlu dijelaskan sebelumnya perbedaan keduanya yang sebenarnya fungsinya sama untuk penyimpanan program maupun data.
Memori internal adalah memori yang dapat diakses langsung oleh prosesor. Sebenarnya terdapat
beberapa macam memori internal, yaitu register yang terdapat di dalam prosesor, cache memori
dan memori  utama  berada  di  luar  prosesor. Sedangkan memori  eksternal  adalah memori  yang

diakses prosesor melalui piranti I/O, seperti disket dan hardisk.  

Operasi Sel Memori
Elemen dasar  memori  adalah sel  memori. Walaupun digunakan digunakan sejumlah
teknologi elektronik, seluruh sel memori memiliki sifat – sifat tertentu :
•  Sel  memori  memiliki  dua  keadaan stabil  (atau semi-stabil), yang  dapat  digunakan untuk
merepresentasikan bilangan biner 1 atau 0. 
• Sel memori mempunyai kemampuan untuk ditulisi (sedikitnya satu kali). 
• Sel memori mempunyai kemampuan untuk dibaca. 
Gambar  4.1 menjelaskan operasi  sel  memori. Umumnya  sel  memori  mempunyai  tiga
terminal fungsi yang mampu membawa sinyal listrik. Terminal select berfungsi memilih operasi
tulis  atau baca. Untuk  penulisan, terminal  lainnya  menyediakan sinyal  listrik  yang  men-set keadaan sel brnilai 1 atau 0, sedangkan untuk operasi pembacaan, terminal ini digunakan sebagai keluaran.


Karakteristik Sistem Memori
Untuk mempelajari sistem memori secara keseluruhan, harus mengetahui karakteristik - karakteristik kuncinya. Karakteristik penting sistem memori disajikan dalam tabel 4.1 berikut :
Dilihat  dari  lokasi, memori  dibedakan menjadi  beberapa  jenis, yaitu register, memori internal  dan memori  eksternal. Register  berada  di  dalam  chip prosesor, memori  ini  diakses langsung  oleh prosesor  dalam  menjalankan operasinya. Register  digunakan sebagai  memori sementara dalam perhitungan maupun pengolahan data dalam prosesor. Memori internal adalah memori  yang  berada  diluar  chip prosesor  namun mengaksesannya  langsung  oleh prosesor. Memori  internal  dibedakan menjadi  memori  utama  dan cache  memori. Memori  eksternal  dapat diakses oleh prosesor melalui piranti I/O, memori ini dapat berupa disk maupun pita. 
Karakteristik  lainnya  adalah       kapasitas. Kapasitas  memori  internal  maupun eksternal biasanya dinyatakan dalam mentuk byte (1 byte = 8 bit) atau word. Panjang word umumnya 8, 16, 32 bit. Memori  eksternal  biasanya  lebih besar  kapasitasnya  daripada  memori  internal, hal  ini disebabkan karena teknologi dan sifat penggunaannya yang berbeda. 
Karakteristik berikutnya adalah satuan tranfer. Bagi memori internal, satuan tranfer sama dengan jumlah saluran data  yang  masuk  ke  dan keluar  dari  modul  memori. Jumlah saluran ini sering  kali  sama  dengan panjang  word, tapi  dimungkinkan juga  tidak  sama. Tiga  konsep yang berhubungan dengan satuan transfer :
  • Word, merupakan satuan “alami”  organisasi  memori. Ukuran word biasanya  sama dengan jumlah bit yang digunakan untuk representasi bilangan dan panjang instruksi. 
  • Addressable units, pada sejumlah sistem, adressable units adalah word. Namun terdapat sistem  dengan pengalamatan pada tingkatan byte. Pada semua kasus hubungan antara panjang A suatu alamat dan jumlah N adressable unit adalah 2A =N. 
  • Unit  of  tranfer, adalah jumlah bit  yang  dibaca  atau dituliskan ke  dalam  memori  pada suatu saat. Pada  memori  eksternal, tranfer  data  biasanya  lebih besar  dari  suatu word, yang disebut dengan block.
Perbedaan tajam yang terdapat pada sejumlah jenis memori adalah metode access-nya. Terdapat empat macam metode :
  • Sequential  access, memori  diorganisasi  menjadi  unit  – unit  data  yang  disebut  recordAkses harus dibuat dalam bentuk urutan linier yang spesifik. Informasi mengalamatan yang disimpan dipakai untuk memisahkan record – record dan untuk membantu proses pencarian. Terdapat   shared read/write  mechanism   untuk  penulisan/pembacaan memorinya. Pita  magnetik  merupakan memori  yang  menggunakan metode  sequential access. 
  • Direct  access, sama  sequential  access  terdapat  shared read/write  mechanism. Setiap blok  dan record memiliki  alamat  unik  berdasarkan lokasi  fisiknya. Akses  dilakukan langsung pada alamat memori. Disk adalah memori direct access.
  • Random access, setiap lokasi memori dipilih secara random dan diakses serta dialamati secara langsung. Contohnya adalah memori utama.
  • Associative access, merupakan jenis random akses yang memungkinkan pembandingan lokasi bit yang diinginkan untuk pencocokan. Jadi data dicari berdasarkan isinya bukan alamatnya dalam memori. Contoh memori ini adalah cache memori yang akan dibahas di akhir bab ini.  
Berdasarkan karakteristik  unjuk  kerja, memiliki  tiga  parameter  utama  pengukuran unjuk  kerja, yaitu : 
  • Access time, bagi random access memory, waktu akses adalah waktu yang dibutuhkan untuk melakukan operasi baca atau tulis. Sedangkan untuk memori non-random akses merupakan waktu yang dibutuhkan dalam melakukan mekanisme baca atau tulis pada lokasi tertentu. 
  • Memory cycle time, konsep ini digunakan pada random access memory dan terdiri dari access time ditambah dengan waktu yang diperlukan transient agar hilang pada saluran sinyal. 
  • Transfer  rate,   adalah kecepatan data  transfer  ke  unit  memori  atau dari  unit  memori. Pada  random  access  memory  sama  dengan 1/(cycle  time). Sedangkan untuk  non-random access memory dengan perumusan :

Jenis  tipe  fisik  memori  yang  digunakan saat  ini  adalah memori semikonduktor  dengan
teknologi  VLSI  dan memori  permukaan magnetik  seperti  yang  digunakan pada  disk  dan pita magnetik.                   Berdasarkan karakteristik fisik, media penyimpanan dibedakan menjadi volatile dan non-volatile, serta  erasable  dan nonerasable. Pada  volatile  memory, informasi  akan hilang  apabila daya  listriknya  dimatikan, sedangkan non-volatile  memory  tidak  hilang  walau daya  listriknya hilang. Memori  permukaan magnetik  adalah contoh no-nvolatile  memory, sedangkan semikonduktor ada yang  volatile dan non-volatile. Ada jenis memori semikonduktor yang tidak bisa dihapus kecuali dengan menghancurkan unit storage-nya, memori ini dikenal dengan ROM(Read Only Memory).


Keandalan Memori
Untuk memperoleh keandalan sistem ada tiga pertanyaan yang diajukan: Berapa banyak ? Berapa cepat? Berapa mahal? 
Pertanyaan berapa banyak adalah sesuatu yang sulit dijawab, karena berapapun kapasitas

memori  tentu aplikasi  akan menggunakannya. Jawaban pertanyaan berapa cepat adalah memori harus  mempu mengikuti  kecepatan CPU  sehingga  terjadi  sinkronisasi  kerja  antar  CPU  dan memori  tanpa  adanya  waktu tunggu karena  komponen lain belum  selesai  prosesnya. Mengenai harga, sangatlah relatif. Bagi  produsen selalu mencari  harga  produksi  paling  murah tanpa mengorbankan kualitasnya untuk memiliki daya saing di pasaran. Hubungan harga, kapasitas dan waktu akses adalah :
• Semakin kecil waktu akses, semakin besar harga per bitnya. 
• Semakin besar kapasitas, semakin kecil harga per bitnya. 
• Semakin besar kapasitas, semakin besar waktu aksesnya. 
Dilema  yang  dihadapi  para  perancang  adalah keinginan menerapkan teknologi  untuk
kapasitas  memori  yang  besar  karena  harga  per  bit  yang  murah namun hal  itu dibatasi  oleh
teknologi  dalam  memperoleh waktu akses  yang  cepat. Salah satu pengorganisasian masalah ini adalah menggunakan hirarki  memori. Seperti  terlihat  pada  gambar  4.2, bahwa  semakin
menurunnya hirarki maka hal berikut akan terjadi :
• Penurunan harga/bit
• Peningkatan kapasitas
• Peningkatan waktu akses
• Penurunan frekuensi akses memori oleh CPU. 
Kunci  keberhasilan hirarki  ini  pada  penurunan frekuensi  aksesnya. Semakin lambat
memori  maka  keperluan CPU  untuk  mengaksesnya  semakin sedikit. Secara  keseluruhan sistem komputer akan tetap cepat namun kebutuhan kapasitas memori besar terpenuhi.  



Satuan Memori
Satuan pokok memori adalah digit biner, yang disebut  bit. Suatu bit dapat berisi sebuah
angka 0 atau 1. Ini adalah satuan yang paling sederhana. Memori juga dinyatakan dalam byte (1
byte  =  8 bit). Kumpulan byte  dinyatakan dalam  word. Panjang  word yang  umum  adalah 8, 16, dan 32 bit.  

Memori Utama Semikonduktor
Pada komputer lama, bentuk umum random access memory untuk memori utama adalah
sebuah piringan ferromagnetik  berlubang  yang  dikenal  sebagai core, istilah yang  tetap
dipertahankan hingga saat ini.  

Jenis Memori Random Akses
            Semua  jenis  memori  yang  dibahas  pada  bagian ini  adalah berjenis  random  akses, yaitu
data secara langsung diakses melalui logik pengalamatan wired-in. Tabel 4.4 adalah daftar jenis
memori semikonduktor utama. 
Hal  yang  membedakan   karakteristik  RAM  (Random  Access  Memory)  adalah
dimungkinkannya pembacaan dan penulisan data ke memori secara cepat dan mudah. Aspek lain adalah RAM bersifat volatile, sehingga RAM hanya menyimpan data sementara. Teknologi yang berkembang  saat  ini  adalah statik  dan dinamik.            RAM  dinamik  disusun oleh sel  – sel  yangmenyimpan data sebagai muatan listrik pada kapasitor. Karena kapasitor memiliki kecenderungan alami  untuk  mengosongkan muatan, maka  RAM  dinamik  memerlukan pengisian muatan listrik secara  periodik  untuk  memelihara  penyimpanan data. Pada  RAM  statik, nilai  biner  disimpan dengan menggunakan konfigurasi  gate  logika  flipflop tradisional. RAM statik akan menyimpan
data selama ada daya listriknya. 
           RAM  statik  maupun dinamik  adalah volatile, tetapi  RAM  dinamik  lebih sederhana dan rapat  sehingga  lebih murah. RAM  dinamik  lebih cocok  untuk  kapasitas  memori  besar, namun RAM statik umumnya lebih cepat. 
Read only  memory (ROM)  sangat  berbeda dengan RAM, seperti namanya, ROM berisi
pola  data  permanen yang  tidak  dapat  diubah. Data  yang  tidak  bisa  diubah menimbulkan
keuntungan dan juga kerugian. Keuntungannya untuk data yang permanen dan sering digunakan
pada  sistem  operasi  maupun sistem  perangkat  keras  akan aman diletakkan dalam  ROM.
Kerugiaannya apabila ada kesalahan data atau adanya perubahan data sehingga perlu penyisipan –
penyisipan. 
            Kerugian tersebut bisa diantisipasi dengan jenis programmable ROM, disingkat PROM. ROM dan PROM bersifat non-volatile. Proses penulisan PROm secara elektris dengan peralatan khusus. 
            Variasi  ROM  lainnya  adalah read mostly  memory, yang  sangat  berguna  untuk  aplikasi operasi  pembacaan jauh lebih sering  daripada  operasi  penulisan. Terdapat  tiga  macam  jenis, yaitu: EPROM, EEPROM dan flash memory
             EEPROM  (electrically  erasable  programmable  read only  memory)  merupakan memori yang  dapat  ditulisi  kapan saja  tanpa  menghapus  isi  sebelumnya. EEPROM  menggabungkan kelebihan non-volatile dengan fleksibilitas dapat di-update. 
Bentuk  memori  semikonduktor  terbaru adalah flash memory. Memori  ini  dikenalkan
tahun 1980-an dengan keunggulan pada  kecepatan penulisan programnya.  Flash memory
menggunakan teknologi  penghapusan dan penulisan elektrik. Seperti  halnya  EPROM,  flash memory  hanya  membutuhkan sebuah transistor  per  byte  sehingga  dapat  diperoleh kepadatan tinggi.  
Pengemasan (Packging)
Gambar 4.3a menunjukkan sebuah contoh kemasan EPROM, yang merupakan keping 8
Mbit  yang  diorganisasi  sebagai  1Mx8. Dalam  kasus  ini, organisasi  dianggap sebagai  kemasan
satu word per keping. Kemasan terdiri dari 32 pin, yang merupakan salah satu ukuran kemasan
keping standar. Pin – pin tersebut mendukung saluran – saluran sinyal beikut ini :
  • Alamat word yang sedang diakses. Untuk 1M word, diperlukan sejumlah 20 buah (220= 1M). 
  • Data yang akan dibaca, terdiri dari 8 saluran (D0 –D7)
  • Catu daya keping adalah Vcc
  • Pin grounding Vss
  • Pin chip enable  (CE). Karena  mungkin terdapat  lebih dari  satu keping  memori yang terhubung  pada  bus  yang  sama  maka  pin CE  digunakan untuk  mengindikasikan valid atau tidaknya pin ini. Pin CE diaktifkan oleh logik yang terhubung dengan bit berorde tinggi bus alamat ( diatas A19)
  • Tegangan program (Vpp). 
Konfigurasi  pin DRAM  yang  umum  ditunjukkan gambar  4.3b, untuk  keping  16 Mbit
yang diorganisasikan sebagai 4M x 4. Terdapat sejumlah perbedaan dengan keping ROM, karena ada operasi tulis maka pin – pin data merupakan input/output yang dikendalikan oleh WE (write enable) dan OE (output enable).

Koreksi Error
Dalam  melaksanakan fungsi  penyimpanan, memori  semikonduktor  dimungkinkan
mengalami  kesalahan. Baik  kesalahan berat  yang  biasanya  merupakan kerusakan fisik  memori maupun kesalahan ringan yang  berhubungan data  yang  disimpan. Kesalahan ringan dapat dikoreksi  kembali. Untuk  mengadakan koreksi  kesalahan data  yang  disimpan diperlukan dua mekanisme, yaitu mekanisme pendeteksian kesalahan dan mekanisme perbaikan kesalahan
          Mekanisme  pendeteksian kesalahan dengan menambahkan data  word (D)  dengan suatu kode, biasanya  bit  cek  paritas  (C). Sehingga  data  yang  disimpan memiliki  panjang  D  +  C. Kesalahan akan diketahui dengan menganalisa data dan bit paritas tersebut. Mekanisme perbaikan kesalahan yang paling sederhana adalah kode Hamming. Metode ini diciptakan Richard Hamming di Bell Lab pada tahun 1950.


  Perhatikan gambar  4.5, disajikan tiga  lingkaran Venn (A, B, C)  saling  berpotongan

sehingga terdapat 7 ruang. Metode diatas adalah koreksi kesalahan untuk word data 4 bit (D=4). Gambar 4.5a adalah data aslinya. Kemudian setiap lingkaran harus diset bit logika 1 berjumlah genap sehingga  harus  ditambah bit  – bit  paritas  pada  ruang  yang  kosong  seperti  gambar  4.5b. Apabila ada kesalahan penulisan bit pada data seperti gambar 4.5c akan dapat diketahui karena lingkaran A dan B memiliki logika 1 berjumlah ganjil. 
Lalu bagaimana  dengan word lebih dari  4 bit  ?  Ada  cara  yang  mudah yang  akan
diterangkan berikut. Sebelumnya  perlu diketahui  jumlah bit  paritas  yang  harus  ditambahkan
untuk sejumlah bit word. Contoh sebelumnya adalah koreksi kesalahan untuk kesalahan tunggal
yang  sering  disebut  single  error  correcting (SEC). Jumlah bit  paritas  yang  harus  ditambahkan lain pada  double  error  correcting         (DEC). Tabel  4.5 menyajikan jumlah bit  paritas  yang  harus ditambahkan dalam sistem kode Hamming.

Contoh koreksi kode Hamming 8 bit data :
Dari tabel 4.5 untuk 8 bit data diperlukan 4 bit tambahan sehingga panjang seluruhnya
adalah 12 bit. Layout bit disajikan dibawah ini :
          Bit cek paritas ditempatkan dengan perumusan 2N dimana N = 0,1,2, ……, sedangkan bit data adalah sisanya. Kemudian dengan exclusive-OR dijumlahkan sebagai berikut : 

Setiap cek bit (C) beroperasi pada setiap posisi bit data yang nomor posisinya berisi bilangan 1
pada kolomnya. 
Sekarang ambil contoh suatu data, misalnya masukkan data : 00111001 kemudian ganti bit data
ke 3 dari 0 menjadi 1 sebagai error-nya. Bagaimanakah cara mendapatkan bit data ke 3 sebagai
bit yang terdapat error?
Sekarang kita lihat posisi bit ke-6 adalah data ke-3. 
Mekanisme koreksi kesalahan akan meningkatkan realibitas bagi memori tetapi resikonya
adalah menambah kompleksitas  pengolahan data. Disamping  itu mekanisme  koreksi  kesalahan akan menambah kapasitas memori karena adanya penambahan bit – bit cek paritas. Jadi ukuran memori  akan lebih besar  beberapa  persen atau dengan kata  lain kapasitas  penyimpanan akan berkurang karena beberapa lokasi digunakan untuk mekanisme koreksi kesalahan.

Cache Memori
           Cache  memori  difungsikan mempercepat  kerja  memori  sehingga  mendekati  kecepatan prosesor. Konsepnya  dijelaskan pada  gambar  4.6 dan gambar  4.7. Dalam  organisasi  komputer, memori  utama  lebih besar  kapasitasnya  namun lambat  operasinya, sedangkan cache  memori berukuran kecil namun lebih cepat. Cache memori berisi salinan memori utama. 
Pada  saat  CPU  membaca  sebuah word memori, maka  dilakukan pemeriksaan untuk
mengetahui  apakah word tersebut  berada  dalam  cache  memori. Bila  ada  dalam  cache  memori
maka  dilakukan pengiriman ke  CPU, bila  tidak  dijumpai  maka  dicari  dalam  memori  utama, selanjutnya  blok  yang  berisi  sejumlah word tersebut  dikirim  ke  cache  memori  dan word yang
diminta CPU dikirimkan ke CPU dari cache memori. Karena fenomena lokalitas referensi, ketika
blok data diberikan ke dalam cache memori, terdapat kemungkinan bahwa word-word berikutnya yang  berada  dalam  satu blok  akan diakses  oleh CPU. Konsep ini  yang  menjadikan kinerja memori lebih baik.
                            Sehingga  dapat  disimpulkan bahwa  kerja  cache  adalah antisipasi  terhadap permintaan
data  memori  yang  akan digunakan CPU. Apabila  data  diambil  langsung  dari  memori  utama bahkan memori  eksternal  akan memakan waktu lama  yang  menyebabkan status  tunggu pada  prosesor. 
Ukuran  cache  memori  adalah kecil, semakin besar  kapasitasnya  maka  akan
memperlambat  proses  operasi  cache  memori  itu sendiri, disamping  harga  cache  memori  yang sangat mahal.

Elemen Rancangan
            Walaupun terdapat  banyak  implementasi  cache, namun dari  sisi  organisasi  maupun arsitekturnya tidak banyak macamnya.

Kapasitas 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 banya
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 bahwaukuran cache antara 1KB dan 512KB akan lebih optimum [STA96].

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].

Fungsi Pemetaan (Mapping)
Telah kita  ketahui  bahwa  cache  mempunyai  kapasitas  yang  kecil  dibandingkan memori
utama. Sehingga diperlukan aturan blok – blok mana yang diletakkan dalam cache. Terdapat tiga metode, yaitu pemetaan langsung, pemetaan asosiatif, dan pemetaan asosiatif set.  

Pemetaan Langsung 
Pemetaan langsung  adalah teknik  yang  paling  sederhana, yaitu teknik  ini  memetakan blok
memori  utama  hanya  ke  sebuah saluran cache  saja. Gambar  4.8 menjelaskan mekanisme
pemetaan langsung.  
i = j modulus m dan m = 2r
dimana :
i = nomer saluran cache
j = nomer blok memori utama
m = jumlah saluran yang terdapat dalam cache
Fungsi pemetaan diimplementasikan dengan menggunakan alamat, yang terdiri dari tiga
field (tag, line, word), lihat gambar 4.8. 
w = word, adalah bit paling kurang berarti yang mengidentifikasikan word atau byte unik dalam blok memori utama. 
s  =  byte  sisa  word yang  menspesifikasi  salah satu dari  2S  blok  memori  utama. Cache logika menginterpretasikan bit – bit S sebagai suatu tag s – r bit (bagian paling berartidalam alamat) dan field saluran r bit.

Efek  pemetaan tersebut  adalah blok  – blok  memori  utama  diberikan ke  saluran cache  seperti berikut ini:
Jadi dalam metode ini pemetaan adalah bagian alamat blok memori utama sebagai nomer saluran cache. Ketika suatu blok data sedang diakses atau dibaca terhadap saluran yang diberikan, maka perlu memberikan tag bagi data untuk membedakannya dengan blok – blok lain yang dapat sesuai dengan saluran tersebut. Pada gambar 4.9 disajikan contoh pemetaan langsung dengan m = 16K, maka pemetaannya :
Perlu diketahui  bahwa  tidak  ada  dua  buah blok  yang  dipetakan ke  nomer  saluran uang  sama memiliki tag sama. Sehingga 000000, 010000, …., FF0000 masing - masing memiliki tag 00, 01,…., FF.  
                Teknik  pemetaan ini  sederhana  dan mudah diimplementasikan, namun kelemahannya adalah terdapat  lokasi  cache  yang  tetap bagi  sembarang  blok  – blok  yang  diketahui. Dengan demikian, apabila suatu program berulang – ulang melakukan word referensi dari dua blok yang berbeda memetakan saluran yang sama maka blok – blok itu secara terus – menerus akan di-swap ke dalam cache sehingga hit rasionya akan rendah. 
Pemetaan Assosiatif
Pemetaan asosiatif  mengatasi  kekurangan pemetaan langsung  dengan cara  setiap blok  memori utama dapat dimuat ke sembarang saluran cache. Alamat memori utama diinterpretasikan dalam field tag dan field word oleh kontrol logika cache. Tag secara unik mengidentifikasi sebuah blok memori utama.
                Mekanisme  untuk  mengetahui  suatu blok  dalam  cache  dengan memeriksa  setiap tag saluran cache  oleh kontrol  logika  cache. Dengan pemetaan ini  didapat  fleksibilitas  dalam penggantian blok  baru yang  ditempatkan dalam  cache. Algoritma  penggantian dirancang  untuk memaksimalkan hit  ratio, yang pada pemetaan langsung  terdapat  kelemahan dalam  bagian ini. Kekurangan pemetaan asosiatif adalah kompleksitas rangkaian sehingga mahal secara ekonomi.
Pemetaan Assosiatif Set
            Pemetaan asosiatif  set  menggabungkan kelebihan yang  ada  pada  pemetaan langsung  dan pemetaan asosiatif. Memori cache dibagi dalam bentuk set – set. Pemetaan asosiatif  set  prinsipnya  adalah penggabungan kedua  pemetaan sebelumnya. Alamat memori utama diinterpretasikan dalam tiga field, yaitu: field tag, field set, dan field word. Hal  ini  mirip dalam  pemetaan langsung. Setiap blok  memori  utama  dapat  dimuat  dalam sembarang saluran cache. Gambar 4.11 menjelaskan organisasi pemetaan asosiatif set. 
               Dalam  pemetaan asosiatif  set, cache  dibagi  dalam  v  buah set, yang  masing  –masing terdiri dari k saluran. Hubungan yang terjadi adalah :
m = v x k
i = j modulus v dan v = 2d  dimana :
i = nomer set cache
j = nomer blok memori utama
m = jumlah saluran pada cache 

             Gambar 4.12 menjelaskan contoh yang menggunakan pemetaan asosiatif set dengan dua saluran pada  masing-masing  set, yang  dikenal  sebagai  asosiatif  set  dua  arah. Nomor  set mengidentifikasi  set  unik  dua  saluran di  dalam  cache. Nomor  set  ini  juga  memberikan jumlah blok  di  dalam  memori  utama, modulus  2. Jumlah blok  menentukan pemetaan blok  terhadap saluran. Sehingga blok-blok 000000, 00A000,…,FF1000 pada memori utama dipetakan terhadap set 0 cache. Sembarang blok tersebut dapat dimuatkan ke salah satu dari kedua saluran di dalam set. Perlu dicatat  bahwa  tidak  terdapat  dua  blok  yang  memetakannya  terhadap set  cache  yang  sama memiliki nomor tag yang sama. Untuk operasi  read, nomor set dipakai untuk menentukan set dua saluran yang akan diuji. Kedua saluran di dalam set diuji untuk mendapatkan yang cocok dengan nomor tag alamat yang akan diakses. 
            Penggunaan dua saluran per set ( v = m/2, k = 2), merupakan organisasi asosiatif set yang paling umum. Teknik ini sangat meningkatkan hit ratio dibandingkan dengan pemetaan langsung. Asosiatif set empat arah (v = m/4, k = 4) memberikan peningkatan tambahan yang layak dengan penambahan harga  yang  relatif  rendah. Peningkatan lebih lanjut  jumlah saluran per  set  hanya memiliki efek yang sedikit.

Algoritma Penggantian
         Yang dimaksud 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 asosiatif  dan asosiatif  set, algoritma  ini  mempunyai peranan penting untuk meningkatkan kinerja cache memori.                Banyak  algoritma  penggantian yang  telah dikembangkan, namun dalam  buku ini  akan dijelaskan algoritma  yang  umum  digunakan saja. 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 berdasakan pemakaian datanya, melainkan berdasar slot dari beberapa slot kandidat secara acak.  

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  dikenalkan 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 sistem, bahkan bisa terjadi hang. 
            Teknik  lainnya  adalah    write  back, yaitu teknik  meminimasi  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  adan 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  mengaksesan data  yang  tidak  di  share  merupakan kegagalan cache. 
 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.







1 komentar: