Anda di halaman 1dari 44

BAB IV

INTERNAL MEMORY

Walaupun konsepnya terasa sederhana, memori komputer memiliki aneka ragam


jenis, teknologi, organisasi, unjuk kerja, dan biaya bagi sistem komputer. Tidak
ada satupun teknologi yang optimal dalam memuaskan kebutuhan memori suatu
sistem komputer. Sebagai akibatnya, sistem komputer yang umum dilengkapi
dengan hirarki subsistem-subsistem memori, yang sebagiannya bersifat internal
terhadap sistem (dapat diakses secara langsung oleh prosessor), dan sebagian lagi
bersifat eksternal (dapat diakses oleh prosessor melalui suatu modul I/O).
Bab ini akan membahas elemen-elemen internal memori, sedangkan bab 5
akan membahas eksternal memori. Bagian pertama Bab ini akan menjelaskan
tentang karakteristik penting memori komputer. Kemudian, kita akan membahas
subsistem memori utama semikonduktor,termasuk memori-memori ROM,
DRAM, dan SDRAM. Setelah itu, akan dibahas elemen penting bagi seluruh
sistem komputer modern: cache memory. Kemudian kita akan kembali membahas
memori DRAM dan akan meneliti lebih mendalam arsitektur DRAM.

Setelah mempelajari materi pada bab IV ini, kompetensi yang didapatkan


mahasiswa adalah
1. Mampu menjelaskan secara detail sistem memori internal komputer dan
hirarkinya
2. Mampu menjelaskan secara detail organisasi modul memori
3. Mampu menjelaskan cache memori
4. Mampu menjelaskan dan memetakan organisasi cache memori.

4.1 Ikhtisar Sistem Memori Komputer

Karakteristik Sistem-sistem Memori


Karakteristik memori yang jelas adalah kapasitasnya. Bagi internal
memori, biasanya kapasitas ini dinyatakan dalam bentuk byte(1 byte = 8 bit) atau

110
111

word. Panjang word yang umum adalah 8, 16, dan 32 bit. Kapasita external
memori biasanya dinyatakan dalam byte.

Tabel 4.1. Karakteristik-karakteristik Penting sistem Memori Komputer


Lokasi Kinerja
CPU Acces time
Internal (main) Cycle time
External (secondary) Transfer rate
Kapasitas Tipe Fisik
Ukuran word Semikonduktor
Banyaknya word Permukaan magnetik
Satuan Transfer Karakteristik Fisik
Word Volatile/nonvolatile
Block Erasable/nonerasable
Metode Akses Organisasi
Sequential acces
Direct acces
Random acces
Associative acces

Konsep yang berkaitan dengan hal ini adalah satuan transfer. Bagi internal
memory, satu transfer sama dengan jumlah saluran data yag masuk ke dan keluar
dari modul memori. Jumlah saluran ini sering kali sama denga panjang word, tapi
mungkin juga tidak sama. Untuk menjelaskan masalah ini, perhatikan tiga konsep
yang saling berhubungan bagi internal memory:
 Word : Satuan “alami” organisasi memori. Ukuran word biasanya sama dengan
jumlah bit yang digunakan untuk respresentasi bilangan dan panjang instruksi.
Sayangnya, terdapat banyak pengecualian. Misalnya, CRAY-1 memiliki
panjang word 64-bit namun memakai respresentasi integer 24-bit. VAX
memiliki beraneka ragam panjang instruksi, yang diekspresikan sebagai
kelipatan byte, dan ukuran word 32-bit.
 Addressable Units : Pada sejumlah sistem, addressable unit adalah word.
Namun terdapat sistem yang mengizinkan pengalamatan pada tingkatan byte.
Pada semua kasus, hubungan antara panjang A suatu alamat dan jumlah N
addressable unit adalah 2A = N.
 Unit of Transfer : Bagi memori utama, satuan ini merupakan jumlah bit yang
dibaca atau yang dituliskan kedalam memori pada suatu saat. Satuan transfer
112

tidak perlu sama denga word atau addressable unit. Bagi external memory,
sering kali data ditransferkan dalam jumlah yang jauh lebih besar dari word, dan
hal ini dikenal sebagai block.

Salah satu perbedaan yang tajam yang terdapat pada sejumlah jenis memori
adalah metode peng-access-an satuan data. Terdapat empat jenis metode :
 Sequential Access: Memori diorganisasikan menjadi unit-unit data, yang disebut
record. Acces harus dibuatlah dalam bentuk urutan linear yang sfesifik.
Informasi pengalamatan yang disimpan untuk memisahkan record-record dan
untuk membantu proses pencarian. Digunakan pula mekanisme baca/tulis yang
digunakan bersama (shared read/write mechanism), dan mekanisme ini harus
dipindahkan dari lokasi saat tertentu ke lokasi yang diinginkan, yaitu dengan
cara melewatkan dan mengeluarkan record-record. Jadi waktu untukl meng-
access record sangat bervariasi. Pita, yng dibahas pada Bab 5, merupakan
sequential access.
 Direct Acces: Seperti halnya sequential access, direct access meliputi shared
read/write mechanism. Akan tetapi, setiap blok dan record memiliki alamat-
alamat yang unik berdasarka lokasi fisik. Akses diperoleh dengan cara akses
langsung untuk mencapai kisaran umum (general vicinity) ditambah pencarian
sequensial, perhitungan, penantian untuk mecapai lokasi akhir. Disini waktu
aksesya variabel. Disk, yang dibahas pada Bab 5 merupakan direct access.
 Random Accsess: Setiap adddressable location didalam memori memiliki
mekanisme yang unik dan pengalamatan yang secar fisik wired-in. Waktu untuk
mengakses lokasi tertentu tidak tergantung pada urutan akses sebelumnya dan
bersifat konstan. Jadi setiap lokasi dapat dipilih secar random dan diakses serta
dialamati secara langsung, sistem memori utama merupakan random access.
 Associative: Ini merupakan jenis random access memory yang memungkinkan
seseorang untuk membandingkan lokasi bit yang diinginkan didalam sebuah
word untuk pencocokan tertentu, dan untuk melakukan perbandingan ini bagi
seluruh word secara simultan. Jadi, sebuah word dicari berdasarkan pada isinya
dan bukan berdasarkan alamatnya. Seperti pada random access memory, setiap
113

likasi memiliki masing-masing mekanisme pengalamatannya sendiri, dan waktu


pencariannya tidak bergantung secara konstan terhadap lokasi atau pola access
sebelumnya. Cache memory, yang dibahas pada bagian 4.3, dapat menggunakan
associative access.
Dari sudut pandang pengguna, dua karakteristik penting memori adalah
kapasitas dan unjuk kerja. Terdapat tiga buah parameter unjuk kerja :
 Access Time: Bagi random-access memory, acces time merupakan waktu yang
dibutuhkan untuk melakukan operasi baca atau tulis, dengan kata lain, waktu
dari suatu alamat diberikan ke memori sampai pada saat data disimpan atau
dapat digunakan. Bagi non-random-access memory, acces time adalah waktu
yang dibutuhkan melakukan mekanisme baca tulis pada lokasi tertentu.
 Memory Cycle Time: Konsep ini terutama digunakan bagi random-access
memory dan terdiri dari access time ditambah dengan waktu tambahan yang
diperlukan transient agar hilang pada saluran signal atau untuk mengahsilkan
kembali data bila data ini dibaca secara destruktif.
Transfer Rate: Transfer rate adalah kecepatan data agar dapat ditransfer keunit
memori atau ditransfer dari unit memori.

4.2 Hirarki Memori


Terdapat trade-off diantara ketiga karakteristik kunci memori, harga,
kapasitas, dan waktu access. Pada suatu saat tertentu, berbagai teknologi
digunakan untuk mengimplementasikan sistem-sistem memori. Melalui spektrum
teknologi itu, hubungan-hubungan dibawah ini perlu dijaga:
 Semakin kecil waktu access, semakin besar harga per bit.
 Semakin besar kapasitas, semakin kecil harga per bit.
 Semakin besar kapasitas, semakin besar waktu access.

Dilema yang dihadapi para perancang cukup jelas. Perancang mempunyai


keinginan untuk memakai teknologi memori yang ada untuk memori berkapasitas
besar, hal ini disebabkan dengan alasan karena kapasitas diperlukan dan karena
114

harga per bit cukup rendah. Namun untuk memenuhi persyaratan unjuk kerja,
perancang perlu menggunakan memori yang mahal, berkapasitas relatif rendah
dengan waktu access yang cepat.
Jalan keluar dari dilema ini adalah dengan tidak menggantungkan diri pada
sebuah komponen memori atau teknologi, melainkan dengan menggunakan
hirarki memori. Hirarki yang umum dijelaskan pada Gambar 5.1a.Semakin
menurunnya hirarki, maka hal-hal dibawah ini akan terjadi :

(a) Hirarki Memori Tradisional

(b) Hirarki Memori Kontemporer


Gambar 4.1. Hirarki memori

a. Penurunan harga/bit
b. Peningkatan kapasitas
115

c. Peningkatan waktu akses


d. Penurunan frekuensi akses memori oleh CPU.

Memori Utama Semikonduktor

Pada komputer yang lama, bentuk yang umum random-acces storage bagi memori
utama sebuah komputer menggunakan sejumlah piringan ferromagnetic berlubang
yang dikenal sebagai core, sebuah istilah yang tetap dipertahankan hingga saat ini.
Sekarang, penggunaan keeping semikonduktor untuk memori utam hamper
bersifat universal. Aspek kunci teknologi ini akan dibahas pada bagian ini.

Jenis Memori Semikonduktor Random Access.


Semua jenis memori yang akan kita bahas pada bagian ini adalah random access.
Yaitu word memori secara langsung diakses melalui logic pengalaman wired-in.
Table 4.2 adalah daftar jenis memori semikonduktor utama. Jenis yang
paling umum digunakan dikenal sebagai random-access memory (RAM). Hal ini
merupakan penggunaan istilah yang salah, karena semua jenis yang terdaftar pada
table merupakan random access. Yang membedakan karakteristik RAM adalah
bahwa dimungkinkan untuk membaca data dari memori dan dapat menulis data
yang baru kememorisecara mudah dan cepat. Pembacaan dan penulisan itu
diperoleh dengan menggunakan signal-signal listrik.
Hal lain yang membedakan karakteristik RAM adalah bahwa RAM
bersifat volatile. Suatu RAM harus diberi supply daya yang konstan. Bila daya
tersebut berhenti, maka data akan hilang , sehingga RAM hanya dapat digunakan
untuk menyimpan sementara saja.
Teknologi RAM dapat dibagi menjadi dua : Sattik dan Dinamik. RAM
dinamik disusun oleh sel-sel yang menyimpan data sebagai muatan listrik pada
kapasitor. Keberadaan dan ketidakadaan muatan listrik pada kapasitor
diinterpretasikan sebagai bilangna biner 1 atau 0. karena kapasitor memiliki
kecendrungan alami atau mengosongkan muatan, maka RAM dinamik
memerlukan pengisian muatan listrik secara priodik untuk memlihara
116

penyimpanan data. Pada RAM static, nilai-nilai biner disimpan dengan


menggunakan konfigurasi gate logic flip-flop tradisional (lihat Lampiran A untuk
keterangan tentang flip-flop). RAM static akan menampung data sepanjang daya
listrik disediakan untuknya.
Bila RAM static maupun RAM dinamik adalah volatile. Sel memori
dinamik lebih sederhana dank arena itu lebih kecil dibandingkan dengan sel
memori statick. Dengan demikian RAM dinamik lebih rapat (sel lebih kecil =
lebih banyak sel per satuan luas) dan lebih murah dibandingkan dengan RAM
static. Sebaliknya RAM dinamik memerlukan rangkaian Pengosong muatan. Bagi
memori yang lebih besar, biaya tetap untuk rangkaian. Pengonsong lebih besar
dari biaya yang digunakan oleh biaya variable yang lebih kecil dari sel-sel RAM
dinamik. Jadi RAM dinamik cemdrung lebih baik digunakan untuk kebutuhan
memori yang lebih besar. Hal terakhir yang penting adalah bahwaRAM static
umumnya lebih cepat disbanding RAM dinamik.
Yang sangat berbeda dengan RAM adalah real-only memory (ROM).
Seperti namanya,ROM berisi pola data permanent yang tidak dapat diubah.
Sementara dimungkinkan untuk menulis data kedalamnya. Suatu aplikasipenting
ROM adalah memprogramming, yang dibahas pada bagian IV. Aplikasi lainnya
meliputi :
 Subroutine- Subroutine kepustakaan bagi fungsi-fungsi yamg sering
digunakan
 Program-program system
 Table-tabel fungsi
Untuk keperluan ynag berukuran sedang, keuntungan ROM adalah bahwa data
atau program secara permanent berada didalam memori utama dan tidak perlu
dimuatkan dari perangkat penyimpan sekunder.
ROM dibuat seperti halnya keeping rangkaian terpadu (IC) lainnya,
dengan data yang wired-in dengan chip merupakan proses pabrikasi. Hal ini
menimbulkan dua masalah :
 Langkah penyisipan data memerlukan biaya tetap yang tinggi, apakah
satua atau seribu buah salinan ROM tertentu dipabrikasi.
117

 Tidak boleh terjadi kesalahan (error). Bila ternyata satu bit salah, maka
batch ROM keseluruhan harus dibuang.
Bila hanya dipe rlukan sedikit ROM dengan isi memori tertentu, alternative yang
murah adalah Programmeble ROM (PROM). Seperi halnya ROM ,PROM bersifat
non-volatile dan hanya bias ditulis sekali saja. Pada PROM, proses penulisan
secara elektris dan dapat dibuat oleh penjual atau pembeli setelah proses
pabrikasi. Diperlukan peralatan khusus untuk proses penulisan atau
pemogramman. PROM memberikan fleksibilitas dan kemudahan. ROM sangat
menarik untuk diproduksi dalam skala besar.
Variasi ROM lainnya adalah read-mostly memori, yang sangat berguna
untuk aplikasi operasi pembacaan jauh lebih sering dibanding dengan operasi
penulisan namun dibutuhkan storage non-volatile. Terdapat 3 macam read-mostly
memory :EPROM, EEPROM dan Flash memory.
Erasable Programmable read-only memory (EEPROM). Optis dibaca dan
ditulisi secara elektris. Seperti halnya PROM. Namun, sebelum operasi write,
seluruh penyimpanan harus dihapus untuk mendapatkan keadaan awal yang sama
dengan menggunakan radiasi sinar ultra-violet terhadap keeping paket. Proses
panghapusan ini dapat dilakukan berulang-ulang; setipa penghapusan memerlukan
waktu lebih selama 20 menit. Dengan demikian EPROM dapat diubah beberapa
kali dan seperti halnya ROM dan PROM , kemampuan manampung datanya boleh
dianggap tidak terhingga. Untuk daya terapung yang sepadan EPROM lebih
mahal dari PROM namun memiliki kelebihan akan kemampuannya untuk
melakukan beberapa kali update.
Bentuk yang kebih menarik dari read-mostly memory adalah electrically
erasable programmable read-only memory (EEPROM). Memory ini merupakan
read-only memory yang dapat ditulis kapan saja tanpa penghapusan isi
sebelumnya; hany byte atau byte-byte yang beralamat yang akan di-update.
Operasi write akan memerlukan waktu yang lebih lama disbanding operasi read.
Sekitar beberapa ratus mili per byte. EEPROM menggabungkan kelebihan non-
valatile dengan fleksibilitas kemampuan dapat di-update, dengan menggunaka bus
control, alamat dan saluran data yang biasa. EEPROM lebih mahal disbanding
118

EPROM dan juga lebih jarang yaitu mendukung bit yang lebih sedikit per
kepingnya.
Bentuk memori semikonduktor yang paling baru adalah flash memory
(dinamakan demikian karena kacepatannya yang dapat deprogram ulang).
Deperkenalkan partama pada 1980-an, harga dan fungsionalitasnya flash memory
berada antara EPROM dan EEPROM. Seperti halnya EEPROM, flash memory
menggunakan teknologi penghapusan elektris. Flash memory keseluruhan dapat
dihapus dal satu atau beberapa detik saja, yang lebih cepat dibandingkan dengan
EPROM. Selain itu, dimungkinkan juga penghapusan blok memory. Akan tetapi,
flash memory tidak menyediakan penghapusan tingkatan byte. Seperti EPROM,
flash memory hanya memakai sebuah transistor per byte, karena itu akan
diperoleh kapadatan tinggi (disbanding dengan EEPROM) EPROM.

Organisasi

Elemen dasar memori semikonduktor adalah sel memori. Walaupun digunakan


sejumlah teknologi elektronik. Seluruh sel memori memiliki sifat-sifat tertentu :
 Sel memori memiliki dua keadaan stabil (atau semi-stabil), yang dapat
dipergunakan untuk mempresentasikan bilangan biner 1 atau 0
 Sel memori mempunyai kemampuan untuk ditulisi (sedikitnya satu kali),
untuk menyetel keadaan
 Sel memori mempunyai kemampuan untuk dibaca, untuk merasakan
keadaan
Gambar 5.5 menjelaskan operasi sel memori,. Umumnya, sel mempunyai tiga
terminal. Fungsi yang mampu membawa signal listrik, terminal select, seperti
namanya, memilih sel memori yang akan digunakan untuk operasi read ayau
write. Untuk penulisan ,terminal lainnyamenyediakan signal listrik yang menyetel
keadaan sel menjai 1 atau 0. untuk pembacaan terminal itu digunakan untuk
output keadaan sel. Detail organisasi internal, pemfungsian dan perwaktuan sel
memori tergantung pada teknologi IC yang digunakan dan berada diluar
pembahasan Materi ini.
119

Gambar 4.5 Operasi sel memori

Logik Keping (Chip Logic)

Seperti produk integrated-circuit lainnya, memori semikonduktor berbentuk


keeping yang terkemas . Masing- masing keeping berisi Array sel memori.
Dengan menggunakan teknologi masakini, keping 4 Mbit merupakan hal yang
umum, dan keping 16 Mbit akan segera dapat diperoleh.
Pada hirarki memori secara keseluruhan, kita telah mengetahui bahwa
terdapat trade-off antara kecepatan, kapasitas, dan harga. Trade-off juga terjadi
pada saat kita mempertimbangkan organisasi sel memori dan logic fungsi pada
keeping. Bagi memori semikonduktor sebuah masalah rancangan yang penting
adalah jumlah bit data yang dapat dibaca/ditulis pada suatu saat. Pada sebuah
ekstrem adalah sebuah organisasi dengan pengaturan fisik sel-sel pada array yang
samadengan pengaturan logic (yang dikenal oleh prosessor) word didalam
memori. Array diorganisasikan sebagai 1 MB 16-bit word. Pada ektrem lainnya
adalah yang disebut organisasi satu bit per keeping, yaitu data ditulis/dibaca satu
bit pada suatu saat.
Gambar 4.6 menjelaskan organisasi DRAM 16 Mbit yang umum. Pada
kasus ini, bit-bit dibaca dan ditulis sekaligus. Logikanya, array memori
diorganisasikan sebagai empat buah kuadrat 2048 terhadap 2048 elemen.
Berbagai pengaturan secara fisik dapat terjadi, pada sembarang kasus, elemen-
elemen array dihubungklan dengan saluran horizontal (baris) dan vertical (kolom).
Setiap saluran horizontal terhubung ke terminal data-in/Sense masing-masing
saluransel pada kolomnya.
120

Saluran alamat memberikan alamat word yang akan dipilih. Diperlukan


saluran sebanyak log2 W. Pada contoh disini, diperlukan 11 saluran untuk memilih
salah satu dari 2048, baris kesebelas saluran ini disambungkan dengan decoder
baris, yang memiliki 11 saluran input dan 2048 saluran output. Logic decoder
mengaktivasi salah satu dari 2048 output yang tergantung pada pola bit pangkat
11 saluran input (211 = 2048).
Sebelas saluran alamat tambahan memilih salah satu dari 2048 klom empat
bit per kolom. Empat saluran data digunakan untuk input dan output bit data dan
dari buffer data. Pada input (write), bit driver pada setiap saluran bit aktivasi
untuk menjadi biner 1 atau 0 berkaitan dengan nilai saluran data yang
bersangkutan. Pada output (rad), nilai setiap saluran bit dilewatkan melaluui
amplifier dan diberikan kesaluran data. Saluran baris memilih baris sel mana yang
dipakai untuk membaca atau menulis.
Karena hanya empat bit dibaca/ditulis ke DRAM ini, maka harus terdaoat
beberapa DRAM yang dihubungkan ke pengontrol memori yang berurutan
membaca/menulis word data bus.
Gambar 4.6. menunjukkan penggunaan refresh circuity. Semua DRAM
membutuhkan operasi refresh. Teknik yang sederhana untuk melakukan operasi
ini adalah dengan membuatlah non-aktif keping DRAM ketika sel data di-refresh-
kan. Penghitung refresh berjalan melalui semua nilai baris. Bagi setiap baris,
saluran output dari penghitung refresh dikirimkan ke decoder baris dan saluran
RAS diaktifkan. Hal ini mengakibatkan pada baris akan direfreshkan.
121

Gambar 4.6 DRAM 16 Mbit 4Mx4

Pengemasan Keping (Chip Packaging)

Organisasi Modul
Bila sebuah keping RAM hanya berisi 1 bit per word, maka jelas kita akan
memerlukan sedikitnya sejumlah keping yang sama dengan jumlah bit per
word. Sebagai suatu contoh,

Gambar 4.8. Organisasi memori 256K-byte


122

Gambar 4.8 menjelaskan cara sebuah modul memori yang terdiridari 256K 8 bit
word diorganisasikan. Bagi 256K word, sebuah alamat 18 bit diperlukan dan
supply ke modul dari sumber eksternal (misalnya, saluran alamat bus tempat
modul akan dihubungkan). Alamat diberikan ke-8 buah keeping 256K x 1 bit,
yang masing-masing menyediakan input/output 1 bit.
Organisasi ini akan bekerja salama ukuran memori sama dengan jumlah
bit per keping. Dalam kasus memoriyang lebih besar diperlukan, maka diperlukan
array keeping. Gambar 5.9 menunjukkan kemungkinan organisasi memori yang
terdiri dari 1M word dengan 8 bit per word. Dalam hal ini, kita mempunyai empat
kolom perkeping, dimana masing-masing kolom terdiri dari 256K word yang
diatur seperti pada gambar 4.8 untuk 1M word, perlukan 20 saluran alamat.
Delapan belas buah bit yang kurang penting diarahkan ke-32 sebuah modul. Dua
bit orde tertinggi merupakan input bagi modul logic select group yang akan
mengirimkan enable signal keeping ke salah satu dari keempat kolom modul.

Gambar 4.9 Organisasi memori 1M-byte

Koreksi Error
123

Sistem memori semikonduktor dapat mengalami kegagalan(Error). Error-error ini


dapat dikategorikan sebagai kegagalan yang berat dan ringan. Kegagalan berat
merupakan kerusakan fisik yang permanent sehingga sel memori yang
mengalaminya tidak dapat lagi digunakan untuk menampung data. Error berat
dapat disebabkan oleh kesalahan penggunaan, dan kerusakan yang berasal dari
pabrik. Error ringan adalah kejadian yang random dan tidak merusak yang
nerubah isi sel memori atau lebih, tanpa merusak memori. Error ringan dapat
disebabkan oleh masalah catu daya atau partikel-partikel alpha. Partikel ini adalah
hasil dari peluruhan radioaktif dan merupakan akibat adanya intiradioaktif dalam
jumlah kecil yang secara alami dapat pada seluruh materi. Baik error berat
maupun ringan merupakan hal yang tidak diinginkan, dan hamper semua system
memori utama modern memiliki logic untuk mendeteksi dan mengoreksi error
tersebut.
Gambar 4.10 menjelaskan secara umum tentang proses yang terjadi.
Ketika data dibaca kedalam memori, kalkulasi, yang menggambarkan sebagai
fungsi f, dibentuk dengan data tersebut, untuk menghasilkan kode. Baik data
maupun kode itu disimpan. Jadi, apabila sebuah word Mbit dataakan disimpan,
dank ode memiliki panjang K bit, ukuran actual word yang disimpan adalah M +
K bit.
Ketika word yang sebelumnya disimpan akan dibaca, maka kode
digunakan untuk mendeteksi dan mengoreksi error yang mungkin terjadi. Bit-bit
kode K yang baru dihasilkan dari M bit data dan dibandingkan dengan bit kode
yang diambil. Perbandingan tersebut akan menghasilkan salah satu dari tiga
kemungkinan :
124

Gambar 4.10. Fungsi kode koreksi error

 Tidak terdapat error. Data bit yang diperhatikan akan dikirimkan.


 Terjadi error dan dimungkinkan untuk mengoreksinya. Bit-bit M yang
dikoreksi akan dikirimkan.
 Terjadi error, namun tidak dimungkinkan untuk mengoreksinya .keadaan
ini akan dilaporkan.

Kode yang beroperasi dengan cara seperti ini disebut sebagai Error-correcting
code. Sebuahh kod dicirikan oleh sejumlah error bit dalamword yang
dapatdikoreksi dan dideteksinya.

4.3 Cache Memory


Prinsip-prinsip
Cache memory ditujukan untuk memberikan kecepatan memori yang mendekati
kecepatan memori tercepat dapat diperoleh, sekaligus memberikan ukuran memori
yang besar dengan harga lebih murah dari jenis memori-memori semikonduktor.
Konsepnya dijelaskan pada gambar 4.15, terdapat memori utama yang relatif lebih
125

besar dan lebih lambat dan cache memory yang berukuran lebih kecil dan lebih
cepat.

Gambar 4.15. Cache memori dan memori utama


Cache memori, berisi salinan sebagian memori utama. Pada saat CPU membaca
sebuah word memory , maka dilakukan pemeriksaan word untuk mengetahui
apakah word itu terdapat pada cache. Bila sudah ada, maka word akan dikirimkan
keCPU. Sedangkam bila tidak ada , blok memori utama yang terdiri dari sejumlah
word yang tetap akan dibaca ke dalam acahe dan kemudian akan dikirimkan ke
CPU. Karena fenomena lokalitas referansi, ketika blok data dijemput ke dalam
cache untuk memenuhi referansi memori tunggal, terdapat kemungkinan bahwa
referensi selanjutnya akan menjadi word – word lainnya pada blok.

Gambar 4.16. Struktur cache/memory utama


126

Gambar 4.16 menjelaskan struktur sistem cache/ main-memory. memori


utama terdiri sampai dengan 12n word beralmaat, yang setiap word memiliki n bit
buat alamat yang unik. Untuk keperluan pemetaan, memori ini dianggap terdiri
dari sejumlah blok yang memiliki panjang tetap yang masing – masing bloknya
memiliki K buah word.Dengan demikian terdapat M = 2n/K blok.Cache terdiri C
buah slot yang masing – masing slotnya mengandung K word, dan jumlah slot,
atau garis, jauh lebih sedikit dibandingkan dengan jumlah blok memori utama
(C<<M). di setiap saat, sejumlah subset blok memori berada pada slot di dalam
cache. Bila sebuah word di dalam blok memeori dibaca, maka blok itu akan
dipindahkan ke salah satu slot cache. karena terdapat lebih banyak blok bila
dibanding dengan slot, maka setiap slot tidak dapat menjadi unik dan permanen
untuk didedikasikan ke blok tertentu. Akibatnya, setiap slot memiliki sebuah tag
yang mengindentifikasikan blok tertentu aman sedang disimpan. Biasanya tag
merupakan bagian alamat memori utama, seperti akan diterangkan kemudian.

Gambar 4.17. Operasi Pembacaan Cache


127

Tabel 4.2 Unsur – unsur Rancangan Cache


Ukuran Cache Write Policy
Direct (Langsung) Write through
Associative (Assosiatif) Write back
Set associative(Assosiatif set) Write once
Algoritma Pengganti Ukuran Blok
Least-recently used (LRU) Banyaknya Cache
First-in-first-out(LFU) Singe-atau dua-level
Least-frequently-used(LFU) Unified atau split
Random

Gambar 4.17 menjelaskan operasi pembacaan CPU membuatlah alamat


word yang akan dibaca (RA). Bila tersimpan dalam cache, blok yang berisi
wordtersebut disimpan ke dalam cache, dan kemudian word dikirmkan ke CPU.

Elemen – elemen Rancangan Cache


Walaupun terdapat banyak implementasi cache, hanya terdapat sedikit elemen –
elemen dasar rancangan yang dapat mengklasifikasikan dan membedakan
arsitektur cache. Table 4.4 memberikan elemen – elemen kunci tersebut.

Ukuran Cache
Elemen – pertamayaitu ukuran cache, telah dibahas sebelumnya. kita
menginginkan ukuran cache cukup kecil sehingga harga rata -rata keseluruhan
per bit mendekati harga memori utama dan cukup besar sehingga waktu akses rata
–rata keseluruhan mendekati waktu akses cache. Terdapat sejumlah dorongan
lainnya untuk meminimasi ukuran cache. semakin besar cache, maka semakin
besar jumlah gate yang terdapat pada pengalamatan cache. Akibatnya adalah
cache yang berukuran besar senderung untuk lebih lambat dibandingkan dengan
cache berukuran kecil- walaupun dibuatlah dengan teknologi rangkaian
terintegrasi yang sama dan ditaruh pada tempat pada keping dan board yang sama.
Hasil penelitian telah menganjurkan bahwa ukuran cache antara 1K dan 512 K
word sejumlah akan lebih optimum. Karena kinerja cache sangat sensitif terhadap
sifat beban kerja, maka tidaklah mungkin untuk mencapai ukuran cache yang
‘optimum’.
128

Fungsi Pemetaan (Mapping)


Karena saluran cache lebih sedikit dibandingkan dengan blok memori utama,
diperlukan algoritma untuk pemetaan blok – blok memori 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 digunkan tiga buah teknik langsung,
asosiatif dam asosiatif set. kita akan membahas ketiga teknik ini secara bergiliran.
bagi ketiga kasus ini, contoh meliputi elemen – elemen di bawah ini:

1. cache dapat menampung 64 KByte


2. Data ditransfer antara memori utama dan cahe dalam blok – blok berukuran 4
byte. Ini artinya bahwa cache diorganisasi sebagai 16 K 214 saluran yang
masing – masing besarnya 4 byte.
3. memori utama memori terdiri dari 16 MByte, yang masing – masing byte-nya
secara langsung dapat dialamati oleh alamat 24-bit(224 = 16 M). jadi untuk
maksud pemetaan, kita dapat menganggap memori utama terdiri dari 4M blok
yang masing –masing bloknya berukuran 4 byte.

Pemetaan langsung
Pemetaan langsung merupakan teknik yang pasling sederhana, yaitu teknik ini
memetakan masing –masing blok memori utama hanya ke sebuah saluran cache
saja. Gambar 4.18 menjelaskan mekanisme umumnya. Pemetaan dapat dinyatakan
seperti di bawah ini:

i = modulus m
129

Gambar 4.18. Organisasi cache pemetaan langsung [HWAN93]

dengan
i = nomor saluran cache
j = nomor blok ememori utama
m = jumlah saluran yang terdapat di dalam cache

Fungsi pemetaan mudah diimplementasikan dengan menggunakan alamat,


Untuk mengakses cache, setiap alamat memori utama dapat dianggap terdiri dari
tiga field. W bit yang paling kurang berarti mengindetifikasikan word atau byte
unik di dalam blok memori utama; pada mesin yang paling kontemporer, alamat
berada pada tingkatan byte. s byte sisanya menspesifikasikan salah satu dari 2s
blok memori utama. Cache logic menginterpretasikan bit – bit s ini sebagai suatu
tag-s-r bit (bagian bit yang pasling berarti) dan field saluran r bit. Field yang
terakhir ini mengindetifikasikan salah satu dari m = 2r saluran cache. Efek
pemetaan ini dalah dimana blok – blok memori utama diberikan ke saluran cache
seperti berikut ini:

Saluran cache Blok – blok memeori utama yang diberiakan


130

0 0,m,…,2s-m
1 1,m + a1,…, 2s – m +1
. .
. .
. .
m-1 m-1,m-1,…, 2s-1
Jadi fungsi bagian sebagai nomor saluran memberikan pemetaan unik
setiap blok memori utama terhadap cache. ketika suatu blok sedang dibaca
terhadap saluran yang diberikan, maka perlu memberikan tag bagi data untuk
membedakannya dari blok lainnya yang dapat sesuai dengan saluran itu. Bit yang
paling berarti s-r melakukan fungsi ini.
Gambar 4.19 menjelaskan contoh sistem yang menggunakan pemetaan
langsung1 pada contoh, m = 16K = 214. Maka pemetaan menjadi

Saluran cache Blok – blok memeori utama yang diberiakan


0 000000,010000,….,FF0000
1 000001,010001,….,FF0001
. .
. .
. .
3FFF 00FFFC,01FFFC,….,FFFFFC

Perlu dicatat bahwa tidak ada dua buah blok yang dipetakan ke nomor
saluran yang sama memiliki nomor tag sama. Sehingga, 000000, 010000,
….,FF0000 masing – masing memiliki nomor tag 00,01,….,FF.

1
Pada gambar, nilai – nilai dan memori dipresentasikan dalam heksadesimal, untuk memudahkan
masalah. bagi pembaca yang kurang mengenal notasi ini, lihat lampiran untuk Bab 8.
131

Gambar 4.19. Contoh pemetaan langsung

Sehubungan dengan gambar 4.17, suatu operasi read berlangsung sebagai


berikut. Sisitem cache diberikan dengan suatu almat 24-bit. Nomor saluran 14-bit
dipakai sebagai indeks pada cache untuk mengakses saluran tertentu. Bila nomor
tag 8-bit cocok dengan nomor tag yang saat itu tersimpan pada saluran, maka
nomor word-2bit digunakan untuk memilih salah satu dari empat byte pada
saluran. Sedangkan apabila nomor tag tidak cocok, maka field tag plus saluran 22-
bit digunakan untuk memperhatikan adalah tag plus saluran 22-bit diratakan
dengan dua buah bit 0, sehingga keempat byte tersebut diperhatikan mulai pada
batas blok.
132

Teknik pemetaan langsung cukup sederhana dan murah untuk


diimplementasikan., kekurangan yang utama adalah bahwa terdapat lokasi cache
yang teteapi bagi sembarang blok – blok yang diketahui. Dengan demikian,
apabila suatu program berulang – ulang melakukan word referensi dari dua blok
yang berbeda memetakan ke saluran yang sama,

Gambar 4.20. Organisasi cache asosiatif secara penuh

maka blok – blok itu secara terus menerus akan di-swap ke dalam cache,
akibatnya hit rationya akan rendah.

Pemetaan Asosiatif
Pemetaan asosiatif mengatasi kekurangan pemetaan langsung dengan cara
mengizinkan setiap blok memori utama untuk dimuatkan ke sembarang saluran
cache. dalam kasus ini, cache control logic menginterpretasikan alamat memori
hanya sebagai sebuah tag field dan word field. tag field secara unuk
mengidentifikasi suatu blok memori utama. Untuk menetukan apakah suatu blok
133

berada di dalam cache, maka control logic harus secara simultan memeriksa setiap
tag saluran yang sesuai. Gambar 4.20 menjelaskan logik tersebut.
Gambar 4.21 menunjukkan sebuah contoh yang menggunakan pemetaan
asosiatif. Suatu alamat memori utama terdiri dari sebuah tag 22-bit dan nomor
byte 2-bit. tag 22-bit harus di simpan dengan blok data 32-bit bagi setiap saluran
pada cache.
Dengan pemetaan asosiatif, terdapat fleksibelitas penggantian blok ketika
sebuah blok baru dibaca ke dalam cache. Algoritma penggantiannya dirancang
untuk memaksimalkan hit ratio. Kekurangan pemetaan asosiatif yang utama
adalah kompleksitas rangkaian yang diperlukan untuk menguji tag seluruh cache
secara paralel.

Pemetaan Asosiatif Set


Pemetaan asosiatif set memanfaatkan kelebihan – kelebihan pendekataan
pemetaan langsung dan pemetaan asosiatif. Dalam kasus ini, cache dibagi menjadi
v buah set. Yang masing – masing terdiri dari k saluran. Hubungan yang terjadi
adalah
m=vxk
i = j modulus v
dengan
i = nomor saluran cache
j = nomor blok ememori utama
m = jumlah saluran yang terdapat di dalam cache

Dengan menggunakan pemetaan asosiatif set blok Bj dapat dipetakan ke


sembarang saluran pada set i. Dalam kasus ini, logik kontrol cache
menginterpretasikan alamat memori sebagai tiga buah field: tag, set dan word. d
buah bit set mengspesifikasikan salah satu dari v = 2d set. s bit tag dan field – field
set mengspesifikasikan salah satu dari 2s blok memori utama. Gambar 4.22
menjelaskan logik kontrol cache-nya.
134

Gambar 4.21. Contoh pemetaan asosiatif


135

Gambar 4.22. Organisasi cache asosiatif set dua arah

Gambar 4.23 menjelaskan contoh yang menggunakan pemetaan asosiatif


set dengan dua saluran pada masing – masing set, yang dikenal sebagai asosiatif
set dua arah. Nomor set 13-bit mengidentifikasi set unik dua saluran di dalam
acache. Nomor set ini juga memeberikan jumlah blok di dalam memori utama,
modulus 213. Jumlah blok menetukan pemetaan blok terhadap saluran. Sehingga
blok – 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
13-bit dipakai untuk menetukan set dua saluran yang akan diuji. Kedua saluran di
dalam set diuji untuk mendapatkan yang cocok dengan nomor tag alamat yang
akan diakses.
136

Untuk kasus eksteren dengan v = m,k =1, teknik asosiatif set mengurangi
pemetaan langsung, dan untuk v=1,k = m, set asosiatif mengurangi pemetaan
asosiatif. 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 lansung. Asosiatif set empat arah (v=m/4,k=4)
memberikan peningkatan tambahan yang layak dengan penambahan harga yang
relatif rendah [MAYB84, HILL89]. Peningkatan lebih lanjut jumlah saluran
perset hanya memiliki efek yang sedikit.

Gambar 4.23. Pemetaan asosiatif set dua arah

Algoritma Penggantian
Ketika sebuah blok baru dibawa ke cache, salah satu blok yang ada harus
digantikan. Untuk pemetaan langsung, hanya terdapat satu kemungkinan slot bagi
sembarang blok tertentu, dan tidak ada pilihan lainnya. bagi teknik asosiatif set,
diperlukan algoritma penggantian. untuk memperoleh kecepatan yang tinggi,
137

algoritma tersebut harus dimplementasikan dalam hardware. sejumlah algoritma


telah dicoba: kita akan membahas empat algoritma yang paling umum digunakan.
mungkin algoritma yang paling efekif adalah least-recently used (LRU):
mengganti blok yang berada dalam set yang telah berada paling lama di dalam
cache dengan tidak memilki referensi. Bagi asosiatif set dua arah, hal ini mudah
diimplementasikan. Setiap slot memiliki bit USE. Ketika slot direferensikan, bit
USE –nya disetel 1 dan bit USE slot lainnya yang berda dalam set distel 0. pada
saat blok dibaca ke dalam set, slot yang memiliki bit USE 0 digunakan. karena
kita mengasumsikan bahwa memori yang lebih sering dipakai adalah lebih besar
kemungkinannya direferensikan, maka LRU harus memrikan hit ratio yang
terbaik. Kemungkinan lainya adalh first-in-first-out (FIFO): Menggantikan blok
di dalam set yang telah berada pada cache dalam waktu yang terlama. FIFO
diimplementasikan dengan mudah sebagai teknik round robin atau buffer sirkular.
Kemungkinan lainnya lagi adalah least-frequently used (LFU): menggantikan
blok di dalam set yang mengalami referensi paling sedikit. LFU dapat
diimplementasikan dengan pengasosiasian suatu counter dengan masing –masing
slot. Sebuah teknik yang tidak berdasarkan pemakaian adalah hanya dengan
memperhatikan slot dari beberapa slot kandidat secara random. Penelitian
simulasi membuktikan bahwa penggantian random hanya memberikan kinerja
yang sedikit buruk dibandingkan dengan algoritma yang berdasarkan penggunaan
[SMIT82].

Write Policy
Sebelum sebuah blok yang berada di dalam cache dapat diganti, terlebih dahulu
perlu dipertimbangkan apakah blok itu sudah diubah selama di dalam cache
namun tidak diubah di dalam memori utama. Bila belum diubah, maka block lama
yang berada di dalam cache dapat diindih. Sedangkan bila sudah diubah, maka
berarti sedikitnya sebuah operasi write telah di bentuk pada sebuah word di dalam
slot cache dan karena itu memori utama harus diperbaharui. Dengan trade-off
kinerja dan harga. dimungkinkan terjadinya bermacam – macam write policy.
Terdapat dua masalah yang terjadi. pertama, lebih dari satu perangkat dapat
138

mengakses memori utama. Misalnya, sebuah modul I/O dapat membaca/ menulis
secara langsung ke memori. Bila sebuah word telah diubah hanya pada cache
saja, maka memori word yang bersangkutan tidak valid lagi. setelah itu, bila
perangkat I/O telah mengubah memori utama, maka cache word tidak valid lagi.
Masalah yang lebih komplek akan terjadi bila sejumlah CPU disambungkan ke
bus yang sama dan masing – masing CPU memiliki cache lokalnya masing –
masing. Akibatnya, bila sebuah word diubah pada sebuah cache, maka word itu
dianggap tidak valid pada cache lainnya.
Teknik yang paling sederhana dikenal sebagai write through
Denganmenggunakan teknik ini, seluruh operasi write dibuatlah untuk memori
utama dan juga untuk cache, yang menjamin bahwa memori utama akan selalu
valid. Modul cache CPU lainnya dapat memonitor lalu lintas ke memori utama
untuk menjaga konsistensi di dalam cache-nya sendiri. Kekurangan yang utama
teknik ini adalah bahwa teknik ini dapat menghasilkan lalu – lintas memori yang
sangat beasar dan dapat membuatlah terjadinya bottleneck. teknik alternatif
lainnya, yang dikenal sebagai write back, meminimasi penulisan memori.
Dengan menggunakan write bac, update hanya dilakukan di dalam cache saja.
Bila update terjadi, maka bit UPDATE yang berkaitan dengan slot disetel.
kemudian, ketika sebuah blok diganti, blok tersebut dituliskan kembali ke memori
utama bila dan hanya bila bit UPDATE telah disetel. Masalah yang terjadi pada
Write back adalah bahwa bagian – bagian memori utama tidak valid, dan karena
itu access – access oleh modul I/O hanya dapata diizinkan bila melalui cache. hal
ini mengakibatkan, rumitnya rangkaian dan timbulnya bootleneck. Pengalaman
telah membuktikan bahwa preentase referensi – referensi memori yang menulis
berada pada tingkatan 15 persen [SMIT82].
Pada organisasi bus dengan lebih dari satu pernagkat (umumnya prosesor)
memiliki cache dan memori utamanya dapat digunakan bersama, dapat terjadi
masalah baru. Bila data yang terdapat pada sebuah cache berubah, maka
invaliditas tidak hanya pada word yang berkaitan pada memori utama, namun
juga word – word yang sama pada cache lainnya (bila lainnya memiliki word
yang sama). Bahkan bila digunakan suatu write policy, cache lainnya dapat
139

mengandung data yang tidak valid. Suatu sistem yang melindungi masalah seperti
ini dikenal sebagi sistem yang menjah\ga koherensi cache. pendekataan –
pendekataan yang mungkin dilakukan bagi koherensi cache meliputi.

 Bus Watching with Through : Setiap cache controller saluran – saluran


alamat untuk mendeteksi operasi write ke memori oleh bus master. Bila
terdapat bus master lainnya menulis ke suatu lokasi yang berada pada
memori yang digunakan bersama, maka cache controller mengvalidasi
entry cache itu. strategi ini tergantung pada penggunaan write-through
policy oleh seluruh cache controller.
 Hardware Transparency: Perangkat keras tambahan digunakan untuk
menjamin bahwa semua update terhadap memori utama via cache
direfleksikan pada seluruh cache. Jadi bila sebuah prosesor mengubah
word di dalam cache-nya sendiri, maka update ini akan dituliskan ke
memori utama. Selain itu, setiap word yang sesuai yang berada pada
cache lainnya akan di-update juga.
 Non-Cachable Memory: Hanya suatu bagian memori utama yang
digunakan bersama oleh lebih dari sebuah prosesor, dan hal ini dikenal
sebagai non-cachable. Pada sistem seperti ini. seluruh akses ke shared
memory merupakan kegagalan cache, karena shared memory tidak pernah
menyalin ke dalam cache. Non-cachable memory dapat didefinisikan
dengan menggunakan chip-select logic atau high-address bit.

Koherensi cache merupakan bidang penyelidikan yang gencar dilakukan, dan


terdapat kemungkinan cara – cara yang lebih sederhana dan lebih efektif akan
dapat tercipta dalam beberapa tahun mendatang ini.

Ukuran Blok
Elemen rancangan lainnya adalah blok, atau saluran, atau ukuran. ketika suatu
blok data di cari dan ditempatkan pada cache, tidak hanya word yang diinginkan
saja yang dicari namun juga sejumlah word yang letaknya berdekatan,. Dengan
140

meningkatkan ukuran blok dari yang berukuran sangat kecil ke besar, pertama-
tama hit ratio akan mengalami kenaikan karena adanya prinsip lokalitas:
probalitas tinggi yaitu data pada daerah sekitar referenced word lebih besar
kemungkinannya untuk didefinisikan pada saat mendatang. dengan
meningkatkannya ukuran blok, maka data yang lebih berguna akan dibawa ke
dalam cache. namun hit ratio akan mengalamai penurunan, dengan semakin
membesarnya ukuran blok dan probabilitas penggunaan informasi yang baru
diperhatikan akan menajdi lebih kecil dibandingkan dengan probabilitas
pemakaian kembali informasi yang harus digantikan. terjadi dua akibat:

1. Blok – blok yang berukuran lebih besar mengurangi jumlah blok yang
menepati cache. karena setiap pengambilan blok menindih isi cache yang
lama, maka sejumlah kecil blok akan menyebabkan data menjadi tertindih
setelah blok itu diambil.
2. Dengan menungkatkan ukuran blok, maka jarak setiap word tambahan
menjadi lebih jauh dari word yang diminta, sehingga menjadi lebih kecil
kemungkinannya untuk diperlukan dalam waktu dekat.

Hubungan antara ukuran blok dengan hit ratio cukup rumit, tergantung
pada karakterisik lokalitas dari program tertentu, dan tidak terdapat nilai optinum
yang pasti telah ditemukan. Ukuran antara 4 hingga 8 satuan yang dapat dialamati
(word atau byte) cukup beralasan untuk mendekati nilai optimum [SMIT87a,
PRZY88, PRZY90].

Jumlah Cache
Pada saat cache diperkenalakan untuk pertama kalinya, suatu sistem memiliki
cache tunggal. Saat ini, penggunaan cache dalam jumlah banyak telah menjadi hal
yang umum. Dua aspek masalah rancangan ini berkenaan dengan jumlah
tingkatan dan penggunaan unfied cache dan split cache.

Cache satu tingkat versus Cache Dua Tingkat


141

Dengan meningkatkan kepadatan logik, telah memungkinkan menempatkan


cache pada keping yang sama seperti prosesor: the on-chip cache. Diabndingkan
dengan suatu cache yang dapat dijangkau via bus eksternal, on-chip cache
mengurangi aktivitas bus eksternal prosesor dan akibatnya meningkatkan waktu
eksekusi dan meningkatkan kinerja sistem secara keseluruhan. Pada saat intruksi
atau data yang diminta ditemukan di dalam on-chip cache, akses bus dieliminasi.
Karena pendeknya lintasaan data secara internal ke prosesor. dibandingkan
dengan panajang bus, maka akses – akses on-chip cache akan jauh lebih cepat.
Selain itu, selama periode ini bus mempunyai kebebasan untuk mendukung
tranfer - transfer lainnya.
Inklusi on-chip cache menimbulkan pertanyaan terbuka tentang apakah
masih diperlukan atau tidaknya off-chip cache atau external cache. secara umum,
jawabannya adalah masih diperlukan, dan sebagaian besar rancangan kontemporer
melibatkan baik on-chip cache maupun external cache, organisasi yang
dihasilakan berupa cache dua tingkat, dengan internal cache dianggap sebagai
tingkat 1 (L1) dan external cache sebagai tingkat 2 (L2). Alasan untuk
memasukkan cache L2 adalah sebagai berikut. Bila tidak ada cache L2 dan
prosesor membuatlah accsess request untuk lokasi memori yang tidak terdapat di
dalam cache L1, maka prosesor harus mengakses memori DRAM atau ROM
melalui bus. Sehubungan dengan lambatnya kecepatan bus dan waktu akses
memori, hal ini menyebabkan buruknya kinerja. Di lain pihak, bila sebuah cache
SRAM L2 digunakan, maka informasi yang sering hilang dapat dicari dengan
cepat. Bila SRAM cukup cepat untuk dapat menyesuaikan dengan kecepatan bus,
maka data dapat diakses dengan menggunakan transaksi zero-wait state, yang
merupakan jenis transfer bus tercepat.
Penghematan yang cukup besar sehubungan dengan penggunaan cache L2
tergantung pada hit rate di dalam cache L1 dan cache L2. sejumlah penelitian
telah menunjukkan, bahwa pada umumnya pengguna cache tingkat kedua tidak
akan meningkatkan kinerja (mis, lihat [AZIM92], [NOVI93]).

Unified Cache dan Split Cache


142

Pada saat kemunculan on-chip cache untuk pertama kalinya, banyak rancangan
yang terdiri cache tunggal yang dipakai untuk menyimpan referensi – referensi
baik untuk data maupun intruksi – intruksi. Setelah itu, telah menjadi hal umum
untuk memecahkan cache menjadi dua: sebuah untuk keperluanintruksi dan
sebuah untuk data.
Terdapat beberapa keuntungan yang penting penggunaan unified cache;
1. Untuk cache tertentu, unified cache memiliki hit rate yang lebih tinggi
dibandingkan dengan split cache karena unified cache menyeimbangkan
beban antara pengambilan intruksi dan data secara otomatis. Dengan kata
lain, apabila pola eksekusi melibatkan lebih banyak pengambilan data, maka
cache akan cenderung untuk mengisinya dengan intruksi, sedangkan bila
pola eksekusi relatif lebih banyak melibatkan pengambilan data
dibandingkan dengan pengambilan intruksi, maka hal sebaliknya akan
terjadi.
2. Hanya sebuah cache saja yang perlu dirancanglah dan dimplementasikan.
Walaupun dengan adanya keuntungan – keuntungan di atas, namun
kecenderungan yang terjadi mengarah ke split cache, khususnya untuk mesin -
mesin superscalar seperti Pentium dan PowerPC, yang menekankan pada
ekseskusi intruksi paralel dan prefetching intruksi yang diperkirakan akan terjadi.
Kelebihan yang utama rancangan split cache adalah bahwa cache jenis ini dapat
mengurangi persaingan antara prosesor intruksi dan unit eksekusi untuk
mendapatkan cache. Hal ini merupakan masalh yang penting bagi semua
rancangan yang berdasarkan pipelining intruksi. Umumnya prosesor akan
memperhatikan intruksi terlebih dahulu dan mengisi buffer, atau pipeline, dengan
intruksi yang akan dieksekusi. Anggaplah sekarang kita memiliki unfied
intruction/data cache, request akan diserahkan ke unfied cache. Bila pada saat
yang bersamaan intruction prefetcher mengeluarkan read request ke cache untuk
mendapatkan intruksi, maka request itu akan diblokir untuk sementara waktu
sehingga cache dapat melayani unit eksekusi terlebih dahulu. Yang
memungkinkannya untuk menyeleasikan intruksi yang sedang dialakukan.
143

Persaingan cache ini dapat menurunkan kinerja dengan cara merusak penggunaan
pipeline intruksi yang efisien. Struktur split cache dapat mengatasi masalah ini.

Organisasi Cache Pentium


Evolusi organisasi cache dapat dilihat jelas pada evolusi microprosesor Intel
80386 tidak memiliki on-chip cache. 80486 menggunakan on-chip cache tunggal
8 Kbyte, dengan memakai saluran berukuran 16 byte dan organisasi asosiatif set
empat arah. Pentium menggunakan dua buah on-chip cache, sebuah untuk data
dan sebuah lainnya untuk intruksi. Masing- masing cache berukuran 8 Kbyte,
dengan menggunakn saluran berukuran 32 byte dan organisasi asosiatif set dua
arah.
Gambar 4.24 memberikan gambar organisasi Pentium yang telah
disederhanakan, yang menjelaskan penempatan dau buah cache. Core execution
unit merupakan dua buah arithmetik and logic unit integer, yang dapat melakukan
eksekusi secara paralel, dan floating point

Gambar 4.24. Diagram blok prosesor Pentium


144

unit dengan register sendiri dan komponen – komponen penggali. Penambahan


dan pengurangan-nya sendiri. data acache memberikan baik operasi integer
maupun floating point. Data cache terdiri dari dua port. port 32-bit dapat
digunakan untuk interface secara terpisah dengan kedua unit ALU integer dan
dapat dikombinasikan untuk interface 64-bit dengan unit floating point. Code
cache, yang hanya dapat dibaca saja, dimasukkan ke sebuah prefetch buffer;
operasi pipeline intruksi akan dibahas pada bab 9.
Gambar 4.25 menjelaskan elemen – elemen kunci cache data internal. data
di dalam cache terdiri dari 128 set dua buah saluran. cache ini secara logika
diorganisasi sebagai dua buah “saluran” 4 Kbyte. Masing – masing saluran
mempunyai sebuah tag dan dua buah bit keadaan; keduanya secara logika
diorganisasikan menjadi dua buah direktori, sehingga dengan demikian hanya
terdapat sebuah entri direktori bagi masing –masing saluran cache. Tag
merupakan 20 most significant bit pada alamat memori data yang tersimpan pada
saluran yang bersangkutan. Cache controller menggunakan algoritma penggantian
least-recently used(LRU), dan karena itu bit LRU tunggal diasosiasikan dengan
setiap set dua saluran.
Cache data menggunakan write-back policy: data dituliskan ke memori
utama hanya bila data itu dipindahkan dari cache dan terdapat suatu update.
Prosesor Prntium secara dinamik dapat dikonfigurasikan untuk mendukung write-
through caching.
145

Gambar 4.25 Struktur Cache data internal Pentium [ANDE93].

Prosesor Pentium mendukung penggunaan cache tingkat 2 eksternal .


Cache ini dapat berukuran 256 atau 512 Kbyte dengan menggunakan saluran 32,
64, atau 128 byte. Cache eksternal merupakan asosiatif set dua arah.

Konsistensi Data Cache.

Untuk memberikan konsistensi cache, data cache mendukung sebuah


protocol yang dikenal senagai MESI (modified /exclusive/shared/invalid). MESI
dirancang untuk mendukung persyaratan konsitensi cache system multiprosesor,
namun MESI juga berguna untuk organisasi Pentium berprosesor tunggal.
146

Tabel 4.3. Keadaan – keadaan Saluran Cache MESI

M E S
I
Modifyed Exclusive Shared
Invaled

Saluran cache ini invaled? Ya Ya Ya


Tidak
Salinan memorinya… out of date valid valid
-
Salina ada cache lain? Tidak Tidak Mungkin
Mungkin
Saluran write pada saluran ini.. tidak pergi tidak pergi pergi ke bus pergi
langsung
Ke bus ke gus meng-update cache
ke bus

Data cache meliputi dua buah bit status per tag, sehingga masing – masing
saluran dapat berada pada salah satu keadaan :
 Modified : Saluran pada cache telah dimodifikasi (berbeda
dengan memori utama).
 Exclusive : Saluran pada cache sama seperti saluran pada memori
utama dan tidak terdapat pada cache lainnya.
 Shared : Saluran pada cache sama sperti pada saluran pada
memori utama dan dapat berada pada cache lainnya.
 Invalid : Saluran pada cache tidak berisi data yang valid.

Table 4.5. mengikhtisarkan arti keempat keadaan. Kita perhatikan aksi


pada kasus prosesor tunggal. Di sini, masalah adalah interaksi antara cache tingkat
1 dengan cache tingkat 2. Suatu saluran cache berawal pada keadaaan invalid awal
(1), stelah reset. Pada saat data barus dibaca ke saluran invalid, data akan dicari
dari memori dan pertama – tama disimpan di dalam cache L2 dan kemudian
disimpan pada cache data L1. Keadaan saluran pada cache L1 menjadi shared (S).
Pembacaan – pembacaan berkiutnya tidak mempengaruhi keadaan cache.
Sekarang anggaplah bahwa sebuah unit eksekursi menulis ke saluran ini.
Saluran pada cache L1 akan di-update. Disini saluran pada cache L2 akan menjadi
147

kadaluwarsa. Untuk menghindarkan inkonsistensi cache, pada saat pertama kali


saluran di-update pada L1, operasi write dituliskan ke cache L2, dan keadaan
saluran L1 akan berubah menjadi exclusive(E). setelah itu, update – update
berikutnya ke saluran pada L1 akan memindahkannya ke keadaan modified (M).
bagi update – update berikutnya saluran akan tetap berada pada keadaaan M, dan
bagi seluruh update berikutnya ini tidak terdapat transfer ke L2. Jadi dengan
demikian hal ini dikenal sebagai write-once policy. Terakhir, apabila diperlukan
untuk mengganti suatu saluran pada cache L1, bila saluran itu berada pada
keadaan S atau E, maka saluran ditulikan kembali ke cache L2 dan kemudian
dibuang dari cache L1. Ketika suatu data yang baru dibaca ke saluran L1 itu,
maka seperti sebelumnya saluran ditandai keadaan S.
Operasi berdasarkan sudut pandang cache L2 jauh lebih kompleks. Pada
saat suatu saluran pertama kali dibacakan ke cache L1 dan cache L2, maka saluran
pada cache L2 ditandai dalam keadaan E, yang menandakan bahwa data ekslusif
bagi cache L2 da prosesor tersebut dan cache L1. Ketika write-once terjadi, L2
meng-update saluran dan menyimpannya dalam keadaan M. Cache L2 tidak akan
diberitahu update – update berikutnya pada saluran ini oleh cache L1. Karena itu,
apabila bus master lainnya berusaha membaca data yang tersimpan pada sebuah
saluran L2 yang berada dalam keadaan M, maka cache L2 akan menyebabkan bus
master tidak akan melanjutkan pembacaannya dan mengirimkan alamat yang
diminta ke prosesor Pentium. Prosesor Pentium akan membuatlah siklus write-
back untuk meng-update memori utama. Kemudian cache L2 akan melepaskan
bus master untuk membentuk operasi pembacaan.
Bila bus master lainnya berusaha menulis data yang berada pada saluran
L2 dalam jeadaan M, maka cache logic L2 juga akan memblokir sementara aksi
itu. L2 harus menjamin bahwa operasi – operasi dilaksanakan dengan urutan yang
benar. L2 tidak dapat membuang begitu saja salurannya dan membiarkan operasi
berlangsung, karena bus master lainnya dapat meng-update bagian lainnya dari
pada saluran yang telah dimodifikasi di dalam saluran L2. Karean itu, salura L2
harus dituliskan ke memori utama sebelum operasi write lainnya terjadi. Namun
sebelum itu terjadi, L2 harus menentukan terlebih dahulu apakah saluran yang
148

bersangkutan pada cache L1 telah di-update sejak write-once terjadi. Dengan


demikian urutan operasi yang benar adalah sbb :
1. Cache L2 medeteksi dan memblokir opersi write.
2. L2 mengirim signal k cache L1 dengan alamat operasi write. Bila L1 telah di-
update sejak write-once, maka L1 melakukan suatu operasi write-through ke
memori utama. Pada umumnya, hal ini menyatakan saluran yang
terpengarushi menjadi invalid (keadaan 1).
3. Apabila L1 belum melakukan write-through, maka cache L2 meng-update
memori utama. Pada umumnya hal ini menyatakan saluran yang terpengaruhi
menjadi invalid (keadaan 1).
4. L2 melepaskan bus master, yang mengizinkannya untuk menyelesaikan
operasi write.

Kita akan kembali membahas protocol MESI dan akan mengulas operasinya
pada konfigurasi multiprosesor.

Cache Control
Cache internal dikontrol oleh dua bit pada salah satu register control, yang
berlabel bit CD (cache disable) dan NW (not writethrough) Tabel 4.6. Terdapat
juga dua buah instruksi Pentium yang dapat digunakan untuk mengontrol cache:
INVD membuang cache memory dan memberikan signal cache eksternal (bila
ada) untuk membuang. WBINVD membentuk fungsi – fungsi yang sama dan juga
memberikan signal cache write-back eksternal untuk menuliskan kembali blok –
blok yang telah dimodifikasi sebelum pembuangan.

Table 4.4. Mode Pengoperasian cache Pentium.


149

Control Bits Operating


Mode
CD NW Cache fills Write-Throug
Invalites
0 0 Enabled Enabled
Enabled
1 0 Disabled Enabled
Enabled
1 1 Disabled Disabled
Disabled

Tabel 4.7.Cache-cache PowerPC.


Model Ukuran Bytes/Line
Organisasi

PowerPC 601 1 32-KByte 32 8-way set


associative
PowerPc 603 2 8-KByte 32 2-way set
associative
PowerPC 604 2 16-KByte 32 4-way set
associative
PowerPC 620 2 32-KByte 64 8-way set
associative

Organisasi Cache PowerPC


Organisasi cache PowerPC telah mengalami modifikasi dengan masing –
masing model dalam kelompok PowerPC, yang menggambarkan terobosan –
terobosan terus – menerus pada unjuk kerjanya yang memaksa para perancang
microprosesor untuk melakukan perbaikan.
Table 4.7 menggambarkan evolusi ini. Model orisinalnya, 601,
mencakupcache code/data 32 Kbyte tunggal yang merupakan asosiatif set delapan
150

arah. Model 603 menggunakan rancangan RISC yang lebih canggih namun
memiliki cache yang lebih kecil : 16 Kbyte yang terbagi menjadi cache intruksi
dan cache data yang terpisah,yang keduanya menggunakan organisasi asosiatif set
dua arah. Hasilnya adalah bahwa model 603 memberikan unjuk kerja yang hampir
sama dengan model 601 namun dengan harga yang lebih murah. Model 604 dan
602 masing – masing menggandakan ukuran cache-nya dari model – model yang
terdahulu.
Gambar 4.26 menjelaskan bentuk yang disederhanakan dari organisasi
PowerPC 620, yang menekankan pada penempatan dua buah cache, anggota –
anggota lainnya keluarga PowerPC memiliki bentuk organisasi yang sama. Unit –
unit sederhana ini merupakan arithmetic

Gambar 4.26. Diagram blok PowerPC 620


151

Gambar 4.27. Diagram keadaan cache PowerPC yang disederhanakan.

and logic unit (ALU), yang dapat mengeksekusi secara paralel dan suatu floating
point unit yang memiliki register dan komponen pengali dan pembaginya sendiri.
Data cache dapat menerima operasi – operasi interger dan floating point melalui
unit load/store Cache intruksi yang merupakan read only diberikan ke unit
intruksi operasinya.
Cache – cache internal merupakan asosiatif set delapan arah dan
menggunakan protocol koherensi cache MESI. Protocol ini dikembangkan untuk
mencakup sebuah keadaan baru yang disebut Allocated (A). Keadaan ini
digunakan bila blok data dalam sebuah saluran disapu keluar dan digantikan.
Keadaan ini akan menjadi A sampai data yang lama dituliskan keluar dan data
baru dituliskan di dalam. Di sini, keadaan akan bergerak menjadi S atau E
tergantung keadaan sekitar(Gambar 4.27)

4.4 Rangkuman
Tiga konsep yang saling berhubungan bagi internal memory:
 Word : Satuan “alami” organisasi memori. Ukuran word biasanya sama dengan
jumlah bit yang digunakan untuk respresentasi bilangan dan panjang instruksi.
Sayangnya, terdapat banyak pengecualian. Misalnya, CRAY-1 memiliki
panjang word 64-bit namun memakai respresentasi integer 24-bit. VAX
152

memiliki beraneka ragam panjang instruksi, yang diekspresikan sebagai


kelipatan byte, dan ukuran word 32-bit.
 Addressable Units : Pada sejumlah sistem, addressable unit adalah word.
Namun terdapat sistem yang mengizinkan pengalamatan pada tingkatan byte.
Pada semua kasus, hubungan antara panjang A suatu alamat dan jumlah N
addressable unit adalah 2A = N.
 Unit of Transfer : Bagi memori utama, satuan ini merupakan jumlah bit yang
dibaca atau yang dituliskan kedalam memori pada suatu saat. Satuan transfer
tidak perlu sama denga word atau addressable unit.

Cache memory ditujukan untuk memberikan kecepatan memori yang mendekati


kecepatan memori tercepat dapat diperoleh, sekaligus memberikan ukuran memori
yang besar dengan harga lebih murah dari jenis memori-memori semikonduktor.

Soal-soal Essay
1. Sebutkan dan jelaskan metode pengaksesan data ?
2. Jelaskan hubungan memori dengan harga, waktu berdasarkan spektrum
teknologi ?
3. Gambarkan dan jelaskan hirarki memori baik tradisional dan kontemporer ?
4. Apa yang mungkin terjadi pada memori jika semakin menurunnya hirarki ?
5. Apa yang dimaksud dengan RAM dan ROM ? dan jelaskan sifatnya ?
6. Apa yang dimaksud dengan cache memori dan gambarkan hubungan CPU,
cache dan main memori ?
7. Jelaskan aalgoritma pergantian ?
8. Jelaskan algoritma LRU, FIFO, LFU ?
9. Jelaskan dan gambarkan organisasi cache PowerPC ?
10. Jelaskan dan gambarkan alur kerja cache PowerPC ?
153

Daftar Pustaka

Andrew S. Tanembaum, 2000, Structured Computer Organization, McGraw-Hill,


New York.

Advanced Computer architecture, Parallelism scalability Programability, Kai


Hwang, 1993, McGraw-Hill, New York.

Carl Hamacher, Zvonko Vrannesic, safwat zaky, 2002, Computer Organization,


5th edition, McGraw-Hill, New York.

David A. Patterson and John L. Hennessy, Morgan Kaufmann, 2007, Computer


Organization and Design: The Hardware/Software Interface" (3rd ed.).

John P. Hayes, 2002, Computer Architecture and Organization, McGraw-Hill,


New York.

John L. Hennessy and David A. Patterson, Morgan Kaufmann, 2007, Computer


Architecture: A Quantitative Approach" (4th ed.).

M. Morris Mano, 2003, Computer System Architecture, Prentice Hall.

W. Stalling, 2003, Computer Architecture and Organization by, 6th edition,


McGraw-Hill, New York.

Anda mungkin juga menyukai