1
1 Cache Memory
1.1 Penjelasan Umum
Sebuah prosesor komputer sangat cepat dan secara konstan membaca infor-
masi dari memori, namun karena kecepatan memori lebih lambat daripada
prosesor, sering kali prosesor harus menunggu untuk mendapatkan informasi
dari memori. Beranjak dari hal tersebut cache memory diciptakan untuk
mengurangi kesenjangan antara kecepatan prosesor dan kecepatan memo-
ri utama, cache memory berukuran kecil, bersifat sementara, memori yang
berbasiskan SRAM berukuran kecil, namun mempunyai kecepatan yang baik
(waktu akses relatif lebih cepat 5-10 kali dari memori utama) dan berisi sega-
la informasi yang dibutuhkan prosesor, tujuan utama cache memory untuk
mengurangi waktu pengaksesan memori dalam pencarian informasi.
Cache memory bekerja dengan mengambil beberapa informasi dari me-
mori utama yang sering digunakan, menempatkan secara acak lalu prosesor
dapat mengambil informasi dari cache memory, lokasi informasi pada cache
memory tiap bloknya tergantung 2 hal: cache mapping policy dan ukuran
cache. Ukuran dari cache memory sangat beragam, biasanya untuk level 2
(L2) berukuran 256K sampai 2M, level 1 (L1) lebih kecil dari L2 sekitar 8K
atau 16K. L1 cache berada didalam prosesor dan L2 terletak antara prosesor
dam memori utama.
Dalam mekanisme kerjanya, data yang akan diproses oleh prosesor, per-
tama kali dicari di L1 cache, bila tidak ada maka akan diambil dari L2 Cache,
kemudian dicari di L3 Cache (Jika diimplementasikan). Jika tetap tidak ada,
maka akan dicari di memori utama. Pengambilan data di L2 Cache hanya
dilakukan bila di L1 cahe tidak ada, Lebih jelasnya proses baca tulis da-
ta yang dilakukan oleh prosesor ke memori utama dapat dijelaskan sebagai
berikut, ketika data dibaca/ditulis di memori utama (RAM) oleh prosesor,
salinan data beserta address-nya (yang diambil/ditulis di memori utama) di-
simpan juga di cache. Sewaktu prosesor memerlukan kembali data tersebut,
prosesor akan mencari ke cache, tidak perlu lagi mencari di memori utama,
jika isi cache penuh, data yang paling lama akan dibuang dan digantikan
oleh data yang baru diproses oleh prosesor. Proses ini dapat menghemat
waktu dalam proses mengakses data yang sama, dibandingkan jika prosesor
berulang-ulang harus mencari data ke memori utama. Secara logika, kapa-
sitas cache memory yang lebih besar dapat membantu memperbaiki kinerja
prosesor, setidak-tidaknya mempersingkat waktu yang diperlukan dalam pro-
ses mengakses data.
Semua cache mengikuti model berikut, memori utama dibagi menjadi
fixed-size blok disebut cache lines, setiap cache line biasanya terdiri dari 4
2
sampai 64 byte yang berurutan, cache line dimulai penghitungan dari 0, jadi
jika ukuran line 32-byte maka line 0 adalah byte 0 sampai 31, line 1 ada-
lah byte 32 sampai 63 dan seterusnya, beberapa line sudah berada di cache,
ketika prosesor mencari informasi pada cache memory lalu cache controller
memeriksa apakah informasi tersebut ada pada cache jika iya, maka pro-
sesor langsung mengambil informasi tersebut, namun jika tidak ditemukan
maka entry line pada cache akan dihilangkan dan mencari informasi serta
mengambilnya pada memori utama atau pada cache yang lebih rendah.
Cache dikenal juga dengan content addressable memory karena untuk
mengakses cache dengan mencari apakah informasi yang diinginkan ada pa-
da cache jika informasi tersebut ada maka itu disebut cache hit namun jika
informasi yang diinginkan tidak ada maka disebut cache miss, untuk memu-
dahkan proses pencarian beberapa algoritma telah dikembangkan.
• Blok - blok yang berukuran lebih besar mengurangi jumlah blok yang
3
menempati cache. Karena isi cache sebelumnya akan ditindih.
Hubungan antara ukuran blok dan hit ratio sangat rumit untuk dirumusk-
an, 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.
Main
CPU Memory
Cache
4
1.4.2 Cache 2 Level
Penambahan dengan L2 Cache membuat prosesor menjadi lebih cepat, Me-
mori L2 Cache ini terletak terletak di MotherBoard (lebih spesifik lagi, modul
COAST : Cache On A Stick. Bentuk khusus dari L2 yang mirip seperti Me-
mory Module yang dapat diganti-ganti tergantung jenis Motherboard ). Akan
tetapi ada juga yang terintegrasi langsung dengan MotherBoard, atau juga
ada yang terintergrasi dengan Processor Module. Di L2 Cache ini, kapa-
sitasnya lebih besar dari pada L1 Cache. Ukurannya berkisar antara 256K
sampai 2M. Biasanya, L2 Cache yang besar diperlukan di Motherboard untuk
Server. Kecepatan akses sekitar 10ns (nano second ).
Main
Memory
CPU
Cache
L2 L2 L2
L3 Cache
5
1.5 Skema Pemetaan Cache
Agar dapat bekerja secara baik, cache harus menyimpan data, namun data
tersebut tidak akan berguna jika prosesor tidak dapat mencarinya alamat
pada memori utama berbeda dengan alamat pada cache, agar prosesor da-
pat mengenali alamat tersebut prosesor menggunakan skema pemetaan yang
“merubah” alamat pada memori utama ke lokasi cache.
Sebelum membahas berbagai pemetaan ada baiknya membahas bagai-
mana data disalin dari memori utama, memori utama dan cache memory
dibagi menjadi ukuran blok yang sama, pada saat alamat memori dimuat
cache mencari apakah word yang dibutuhkan ada di cache jika tidak dite-
mukan maka cache akan menyalin seluruh blok pada memori utama yang
terdapat word tersebut.
Cache Main
Blok 1 Blok 1
Blok 2 Blok 2
Blok 3 Blok 3
Blok 4 Blok 4
Blok 5 Blok 5
Blok 6 Blok 6
Blok 7
Blok 8
6
i = j mod m
m = 2r
Dimana :
i = nomor saluran cache
j = nomor blok memori utama
m = jumlah saluran yang terdapat dalam cache
Fungsi pemetaan diimplementasikan dengan menggunakan alamat, yang ter-
diri dari tiga field (tag, line dan word ) lihat gambar dibawah.
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 logik menginterpretasikan bit - bit s sebagai suatu tag
s r bit (bagian paling berarti dalam alamat) dan field saluran r bit.
7
1.5.2 Pemetaan Asosiatif
Pemetaan langsung tidak terlalu mahal dengan teknik lainnya karena tidak
dubuhtkan mencari di memori, tiap blok memori utama mempunyai lokasi
yang spesifik, pada saat alamat memori utama diubah menjadi alamat cache,
prosesor mengetehui dengan jelas posisi dimana dia dapat informasi yang
dibutuhkan tanpa harus mencari.
Pemetaan asosiatif mengatasi kekurangan pemetaan langsung dengan ca-
ra 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 memerik-
sa 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. Ke-
kurangan pemetaan asosiatif adalah kompleksitas rangkaian sehingga mahal
secara ekonomi.
Pada pemetaan langsung, jika suatu blok telah menempati lokasi sebuah
cache dan ada blok lain yang akan mengisi lokasi tersebut, blok yang lama
akan dihilangkan (dapat juga dikembalikan ke memori utama jika telah dimo-
difikasi jika tidak akan segara dihilangkan). Dengan menggunakan pemetaan
asosiatif, pada saat cache penuh dibutuhkan algoritma untuk menempatkan
lokasi cache dan juga blok yang akan ditempatkan, algoritma yang sederhana
8
seperti First-in First-out (FIFO) dapat bekerja pada pemetaan asosiatif, de-
ngan algoritma lain seperti least-recently used (LRU) juga dapat digunakan.
11 bits 3 bits
Tag Word
14 bits
14 bits
Dalam pemetaan asosiatif set, cache dibagi dalam v buah set, yang masing-
masing terdiri dari k saluran. Hubungan yang terjadi adalah :
m = vxk
9
i = nomer set cache
10
2 Pipeline
2.1 Penjelasan Umum
Teknologi pipeline yang digunakan pada komputer bertujuan untuk mening-
katkan kinerja dari komputer. Secara sederhana, pipeline adalah suatu cara
yang digunakan untuk melakukan sejumlah kerja secara bersamaan tetapi
dalam tahap yang berbeda yang dialirkan secara kontiniu pada unit pemro-
sesan. Dengan cara ini, maka unit pemroses selalu bekerja.
Teknik pipeline ini dapat diterapkan pada berbagai tingkatan dalam sis-
tem komputer. Bisa pada level yang tinggi, misalnya program aplikasi, sam-
pai pada tingkat yang rendah, seperti pada instruksi yang dijalankan oleh
microprocessor. Teknik pipeline yang diterapkan pada microprocessor, da-
pat dikatakan sebuah arsitektur khusus. Ada perbedaan khusus antara model
microprocessor yang tidak menggunakan arsitektur pipeline dengan microp-
rocessor yang menerapkan teknik ini.
Pada microprocessor yang tidak menggunakan pipeline, satu instruksi
dilakukan sampai selesai, baru instruksi berikutnya dapat dilaksanakan. Se-
dangkan dalam microprocessor yang menggunakan teknik pipeline, ketika
satu instruksi sedangkan diproses, maka instruksi yang berikutnya juga da-
pat diproses dalam waktu yang bersamaan. Tetapi, instruksi yang diproses
secara bersamaan ini, ada dalam tahap proses yang berbeda. Jadi, ada se-
jumlah tahapan yang akan dilewati oleh sebuah instruksi.
Misalnya sebuah microprocessor menyelesaikan sebuah instruksi dalam
4 langkah. Ketika instruksi pertama masuk ke langkah 2, maka instruksi
berikutnya diambil untuk diproses pada langkah 1 instruksi tersebut. Begitu
seterusnya, ketika instruksi pertama masuk ke langkah 3, instruksi kedua
masuk ke langkah 2 dan instruksi ketiga masuk ke langkah 1.
Dengan penerapan pipeline ini pada microprocessor akan didapatkan pe-
ningkatan dalam unjuk kerja microprocessor. Hal ini terjadi karena beberapa
instruksi dapat dilakukan secara parallel dalam waktu yang bersamaan. Se-
cara kasarnya diharapkan akan didapatkan peningkatan sebesar K kali diban-
dingkan dengan microprocessor yang tidak menggunakan pipeline, apabila
tahapan yang ada dalam satu kali pemrosesan instruksi adalah K tahap.
Teknik pipeline ini menyebabkan ada sejumlah hal yang harus diperha-
tikan sehingga ketika diterapkan dapat berjalan dengan baik. Tiga kesulitan
yang sering dihadapi ketika menggunakan teknik pipeline ini adalah : Terja-
dinya penggunaan resource yang bersamaan, Ketergantungan terhadap data,
Pengaturan Jump ke suatu lokasi memori.
Karena beberapa instruksi diproses secara bersamaan ada kemungkinan
instruksi tersebut sama-sama memerlukan resource yang sama, sehingga di-
11
perlukan adanya pengaturan yang tepat agar proses tetap berjalan dengan
benar. Sedangkan ketergantungan terhadap data, bisa muncul, misalnya in-
struksi yang berurutan memerlukan data dari instruksi yang sebelumnya.
Kasus Jump, juga perlu perhatian, karena ketika sebuah instruksi meminta
untuk melompat ke suatu lokasi memori tertentu, akan terjadi perubahan
program counter, sedangkan instruksi yang sedang berada dalam salah sa-
tu tahap proses yang berikutnya mungkin tidak mengharapkan terjadinya
perubahan program counter.
Dengan menerapkan teknik pipeline ini, akan ditemukan sejumlah per-
hatian yang khusus terhadap beberapa hal di atas, tetapi tetap akan meng-
hasilkan peningkatan yang berarti dalam kinerja microprocessor. Ada kasus
tertentu yang memang sangat tepat bila memanfaatkan pipeline ini, dan
juga ada kasus lain yang mungkin tidak tepat bila menggunakan teknologi
pipeline.
Pipeline tidak selalu berfungsi pada berbagai kasus, ada beberapa keru-
gian, berikut adalah kelebihan dan kekurangan pipeline:
Kekurangan Pipeline
12
oleh kenyataan bahwa tiba-tiba harus ditambahkan ke jalur data dari
prosesor pipelined
• prosesor non pipelining akan ada instruksi bandwith yang stabil. Ki-
nerja prosesor pipelined sangat sulit untuk memprediksi dan dapat ber-
variasi secara lebih luas di antara berbagai program.
Kelebihan Pipeline
2.2 Hyperthreading
Intel Hyper-Threading Technology merupakan sebuah teknologi mikroprose-
sor yang diciptakan oleh Intel Corporation pada beberapa prosesor dengan
arsitektur Intel NetBurst dan Core, semacam Intel Pentium 4, Pentium D,
Xeon, dan Core 2. Teknologi ini diperkenalkan pada bulan Maret 2002 dan
mulanya hanya diperkenalkan pada prosesor Xeon (Prestonia).
Prosesor dengan teknologi ini akan dilihat oleh sistem operasi yang men-
dukung banyak prosesor seperti Windows NT, Windows 2000, Windows XP
Professional, Windows Vista, dan GNU/Linux sebagai dua buah prosesor,
meski secara fisik hanya tersedia satu prosesor. Dengan dua buah prosesor
dikenali oleh sistem operasi, maka kerja sistem dalam melakukan eksekusi
setiap thread pun akan lebih efisien, karena meskipun sistem-sistem opera-
si tersebut bersifat multitasking, sistem-sistem operasi tersebut melakukan
eksekusi terhadap proses secara sekuensial (berurutan), dengan sebuah algo-
ritma antrean yang disebut dengan dispatching algorithm.
13
Gambar 10: Hyper-threaded CPU
14
Referensi
Henderson, Harry. Encyclopedia of Computer Science and Technology, Facts
on File. 2003
Wikipedia.org
15