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.
- Sequential access, memori diorganisasi menjadi unit – unit data yang disebut record. Akses 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.
- 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).
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 :
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.
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.
makasih banyak sudah share min solder uap
BalasHapus