Anda di halaman 1dari 16

Nama : Muhammad Abdan Fikri

NIM : 202210370311013
BAB 4

Memori cache

Memori komputer menunjukkan jangkauan terluas dari jenis, teknologi, organisasi,


kinerja dan biaya fitur apa pun dari sistem komputer. Sistem komputer biasa
dilengkapi dengan hierarki subsistem memori, beberapa internal ke sistem dan
beberapa eksternal.

Bab ini fokus pada elemen memori internal. Bagian pertama membahas karakteristik
utama dari memori komputer. Sisa bab ini membahas elemen penting dari semua
sistem komputer modern : memori cache.

4.1 GAMBARAN UMUM SISTEM KOMPUTER

Karaktersistik Sistem Memori

Subjek memori komputer yang kompleks menjadi lebih mudah dikelola jika kita
mengklasifikasikan sistem memori menurut karakteristik utamanya.

Istilah location mengacu pada apakah memori internal atau eksternal ke komputer.

Memori internal sering disamakan dengan memori utama, ada bentuk lain dari
memori internal. Yaitu prosesor register yang membutuhkan memori lokalnya
sendiri. Selanjutnya, unit kontrol dari prosesor juga memerlukan memori internal.
Cache adalah bentuk lain dari memori internal.

Memori eksternal terdiri dari perangkat penyimpanan periferal, seperti disk dan
tape, yang dapat diakses oleh prosesor melalui pengontrol I/O.

Karakteristik selanjutnya adalah capacity. Untuk memori internal, biasanya


dinyatakan dalam byte (1 byte = 8 bits) atau kata-kata. Panjang kata yang umum
adalah 8, 16, dan 32 bits. Capacity memori eksternal biasanya dinyatakan dalam
byte.

Karateristik selanjutnya adalah unit of transfer. Untuk memori internal, satuan


transfer sama dengan jumlah saluran listrik yang masuk dan keluar modul memori.
Panjang unit of transfer pada umum adalah 64, 128, 256 bits.
Ada tiga konsep terkait memori internal :

- kata : unit "alami" dari organisasi memori. Ukuran kata biasanya sama dengan
jumlah bit yang digunakan untuk mewakili bilangan bulat dan panjang instruksi.

- Unit yang dialamatkan : dalam beberapa sistem, unit yang dapat dialamatkan
adalah kata. Namun, banyak sistem memungkinkan pengalamatan pada tingkat byte.

- Unit transfer : untuk memori utama, jumlah bits yang dibaca ke memori. Untuk
memori eksternal, data sering ditransfer dalam unit yang jauh lebih besar daripada
kata, dan ini disebut sebagai blok.

Metode metode mengakses unit data :

- Akses sekuensial : memori diatur ke dalam unit data, yang disebut record. Akses
harus dibuat dalam urutan linier tertentu.

- Akses langsung : akses dilakukan dengan akses langsung untuk mencapai area
umum ditambah pencarian berurutan, penghitungan, atau menunggu untuk
mencapai lokasi akhir.

- Akses acak : waktu untuk mengakses lokasi tertentu tidak tergantung pada urutan
akses sebelumnya dan konstan.

Dua karakteristik memori yang paling penting adalah kapasitas dan kinerja.
Ada tiga parameter kinerja digunakan :

- Waktu akses : waktu yang diperlukan untuk memposisikan mekanisme baca tulis di
lokasi yang diinginkan.

- Waktu siklus memori : waktu siklus memori diterapkan pada memori akses acak,
terdiri dari waktu akses ditambah waktu tambahan yang diperlukan sebelum akses
kedua dapat dimulai.

- Kecepatan transfer : kecepatan transfer data ke dalam atau ke luar unit memori.

Hirarki Memori

Tiga karakteristik utama memori: kapasitas, waktu akses, dan biaya. Berbagai
teknologi digunakan untuk mengimplementasikan sistem memori, dan di seluruh
spektrum teknologi ini, hubungan berikut berlaku:
waktu akses lebih cepat, biaya per bit lebih besar.
Kapasitas lebih besar, biaya per bit lebih kecil.
Kapasitas lebih besar, waktu akses lebih lambat.
Dilema yang dihadapi desainer adalah perancang ingin menggunakan teknologi
memori yang menyediakan memori berkapasitas besar. Namun, perancang perlu
menggunakan memori yang mahal dan berkapasitas relatif lebih rendah dengan
waktu akses yang singkat.

Jalan keluar dari dilema ini adalah tidak bergantung pada satu komponen memori
atau teknologi, tetapi menggunakan hierarki memori.

Saat seseorang turun hierarki, hal berikut terjadi:


a. Menurunkan biaya per bit;
b. Meningkatkan kapasitas;
c. Meningkatkan waktu akses;
d. Penurunan frekuensi akses memori oleh prosesor.

Jadi, memori yang lebih kecil, lebih mahal, dan lebih cepat dilengkapi dengan
memori yang lebih besar, lebih murah, lebih lambat. Kunci sukses organisasi ini.

Penurunan frekruensi akses. Penggunaan dua tingkat memori untuk mengurangi


waktu akses rata-rata bekerja. lokalitas referensi [DENN68]. Selama eksekusi suatu
program, referensi memori oleh prosesor, baik untuk instruksi maupun data,
cenderung mengelompok.

4.2 PRINSIP-PRINSIP MEMORI CACHE


Memori cache dirancang untuk menggabungkan waktu akses memori yang mahal,
memori berkecepatan tinggi yang dikombinasikan dengan ukuran memori besar
yang lebih murah, memori berkecepatan lebih rendah.

struktur sistem cache/memori utama. Memori utama terdiri dari hingga 2n kata yang
dapat dialamatkan, dengan setiap kata memiliki alamat n-bit yang unik. Untuk tujuan
pemetaan, memori ini dianggap terdiri dari sejumlah blok K word dengan panjang
tetap masing-masing.
Gambar mengilustrasikan operasi baca.
4.3 ELEMEN DESAIN CACHE
Bagian ini memberikan gambaran umum tentang parameter desain cache. Ada
beberapa elemen desain dasar yang berfungsi untuk mengklasifikasikan dan
membedakan arsitektur cache.

Alamat Cache
Hampir semua prosesor yang tidak tertanam, mendukung memori virtual. Pada
dasarnya, memori virtual adalah fasilitas yang memungkinkan program untuk
menangani memori dari sudut pandang logis, tanpa memperhatikan jumlah memori.
Memori utama tersedia secara fisik. Unit manajemen memori perangkat
keras(MMU)
menerjemahkan setiap alamat virtual menjadi alamat fisik di memori utama.

Cache logis, juga dikenal sebagai cache virtual, menyimpan data menggunakan
alamat maya.

Prosesor mengakses cache secara langsung, tanpa melalui MMU. Cache fisik
menyimpan data menggunakan alamat fisik memori utama.
Ukuran Tembolok
Ukuran cache cukup kecil sehingga biaya rata-rata keseluruhan per bit mendekati
biaya memori utama sehingga waktu akses rata-rata keseluruhan mendekati biaya
cache. Karena kinerja cache sangat sensitif terhadap sifat beban kerja, tidak mungkin
untuk mencapai ukuran cache "optimal" tunggal.

Fungsi Permetaan
Karena jalur cache lebih sedikit daripada blok memori utama, diperlukan algoritma
untuk memetakan blok memori utama ke dalam jalur cache. Pilihan fungsi
pemetaan menentukan bagaimana cache diatur.
Tiga teknik dapat digunakan: langsung, asosiatif, dan set-asosiatif.

- Permetaa langsung teknik paling sederhana, memetakan setiap blok memori utama
hanya ke dalam satu baris cache yang mungkin. Pemetaan tersebut dinyatakan
sebagai i = j modulo m.
i = nomor baris cache
j = nomor blok memori utama
m = jumlah baris dalam cache

pemetaan untuk m blok pertama dari memori utama. Setiap blok memori utama
dipetakan ke dalam satu baris cache yang unik. Fungsi pemetaan mudah
diimplementasikan menggunakan alamat memori utama.

-Permetaan asosiatif mengatasi kelemahan pemetaan langsung dengan mengizinkan


setiap blok memori utama untuk dimuat ke baris cache mana pun.

Logika kontrol cache menafsirkan alamat memori hanya sebagai bidang Tag dan
Word. Bidang Tag secara unik mengidentifikasi blok memori utama.
Untuk menentukan apakah sebuah blok ada dalam cache, logika kontrol cache harus
secara bersamaan memeriksa setiap tag baris untuk kecocokan.

- permetaan set-asosiatif adalah kompromi yang menunjukkan kekuatan dari kedua


pendekatan langsung dan asosiatif sambil mengurangi kerugiannya.

Pemetaan asosiatif himpunan k-way.


M=V*K
I = J module

M = jumlah baris dalam cache


V = jumlah himpunan
K = jumlah baris dalam setiap himpunan
I = nomor set cache
J = nomor blok memori utama
blok v pertama dari memori utama. Setiap kata dipetakan menjadi beberapa baris
cache. Untuk pemetaan set-associative, setiap kata memetakan ke semua baris
cache dalam set tertentu, sehingga blok memori utama B0 memetakan ke set 0, dan
seterusnya. Dengan demikian, cache set-associative dapat diimplementasikan
secara fisik sebagai v cache associative.

Algoritma pengganti
Setelah cache diisi, ketika blok baru dimasukkan ke dalam cache, salah satu blok
yang ada harus diganti. Untuk pemetaan langsung, hanya ada satu garis yang
mungkin untuk setiap blok. Untuk teknik asosiatif dan himpunan asosiatif, diperlukan
algoritma pengganti. Empat algoritma paling umum.

- least recently used (LRU) : Ganti blok itu di set yang telah berada di cache paling
lama tanpa referensi ke sana. Untuk asosiatif himpunan dua arah, Setiap baris
menyertakan bit USE. Bit USE-nya diset ke 1 dan bit USE dari baris lain di set itu diset
ke 0. Ketika sebuah blok akan dibaca ke dalam set, baris yang bit USE-nya adalah 0
digunakan. LRU juga relatif mudah diterapkan untuk cache yang sepenuhnya
asosiatif.

- First-in-first-out (FIFO) : Ganti blok itu di set yang telah berada di cache paling lama.
FIFO mudah diimplementasikan sebagai teknik buffer round-robin atau circu lar.

- least frequently used (LFU) : Ganti blok itu di set yang memiliki referensi paling
sedikit. LFU dapat diimplementasikan dengan mengasosiasikan counter dengan
setiap baris.

- Random: penggantian acak hanya memberikan kinerja yang sedikit lebih rendah
daripada algoritma berdasarkan penggunaan [SMIT82].

Tulisan kebijakan
Ketika sebuah blok yang ada di cache akan diganti, ada dua kasus yang perlu
dipertimbangkan. Jika blok lama dalam cache belum diubah, maka blok tersebut
dapat diganti dengan blok baru tanpa terlebih dahulu menghapus blok lama.
Jika setidaknya satu operasi tulis telah dilakukan pada sebuah kata di baris cache itu,
maka memori utama harus diperbarui dengan menulis baris cache ke blok memori
sebelum memasukkan blok baru. jika sebuah kata diubah dalam satu cache, itu bisa
membuat kata di cache lain menjadi tidak valid.

- Write through : Dengan menggunakan teknik ini, semua operasi tulis dibuat ke
memori utama dan juga ke cache, memastikan bahwa memori utama selalu valid.
Kerugian utama dari teknik ini adalah menghasilkan lalu lintas memori yang
substansial dan dapat membuat bot tleneck.

- Write back : meminimalkan penulisan memori.Dengan menulis kembali,pembaruan


hanya dilakukan di cache.
Dalam organisasi bus di mana lebih dari satu perangkat (biasanya prosesor) memiliki
cache dan memori utama digunakan bersama. Jika data dalam satu cache diubah, ini
tidak hanya membatalkan kata yang sesuai di memori utama, tetapi juga kata yang
sama di cache lain. Sistem yang mencegah masalah ini dikatakan memelihara
koherensi cache. Kemungkinan pendekatan untuk koherensi cache termasuk yang
berikut:

- Pengamatan bus dengan write through: Setiap pengontrol cache memonitor jalur
alamat untuk mendeteksi operasi tulis ke memori oleh master bus lainnya.

- Transparansi perangkat keras: Perangkat keras tambahan digunakan untuk


memastikan bahwa semua pembaruan ke memori utama melalui cache tercermin di
semua cache.

- Memori noncacheable : Hanya sebagian dari memori utama yang digunakan


bersama oleh lebih dari satu prosesor, dan ini ditetapkan sebagai noncacheable.

Ukuran Garis
Ketika sebuah blok data diambil dan ditempatkan di cache, tidak hanya kata yang
diinginkan tetapi juga sejumlah kata yang berdekatan akan diambil. Ketika ukuran
blok meningkat dari ukuran yang sangat kecil ke ukuran yang lebih besar, rasio hit
pada awalnya akan meningkat karena prinsip lokalitas, yang menyatakan bahwa data
di sekitar kata yang direferensikan kemungkinan akan direferensikan dalam waktu
Dekat. Saat ukuran blok meningkat,rasio hit akan mulai berkurang. Dua efek spesifik
ikut bermain:

- Blok yang lebih besar mengurangi jumlah blok yang masuk ke dalam cache. Karena
setiap
pengambilan blok menimpa konten cache yang lebih lama, sejumlah kecil blok
mengakibatkan data ditimpa segera setelah diambil.

- Saat blok menjadi lebih besar, setiap kata tambahan lebih jauh dari yang diminta
kata dan karena itu cenderung tidak dibutuhkan dalam waktu dekat.

Hubungan antara ukuran blok dan rasio hit adalah kompleks, tergantung pada
Karakteristik.

Jumlah Cache
Ketika cache awalnya diperkenalkan, sistem tipikal memiliki satu cache. Baru-baru
ini,
penggunaan beberapa cache telah menjadi norma. Dua aspek dari masalah desain ini
menyangkut jumlah tingkat cache dan penggunaan cache terpadu versus cache
terpisah.

Cache Bertingkat: Karena kepadatan logika telah meningkat, menjadi mungkin untuk
memiliki cache pada chip yang sama dengan prosesor: cache on-chip. cache on-chip
mengurangi aktivitas bus eksternal prosesor dan oleh karena itu mempercepat
waktu eksekusi dan meningkatkan kinerja sistem secara keseluruhan. dibandingkan
dengan panjang bus, akses cache on chip akan selesai jauh lebih cepat daripada
siklus bus keadaan nol-tunggu.

Organisasi desain kontemporer menyertakan cache on-chip dan eksternal. yang


paling sederhana dikenal sebagai cache dua tingkat, dengan level internal 1 (L1) dan
cache eksternal ditetapkan sebagai level 2 (L2).

unified versus split caches : cache on-chip telah menjadi umum untuk membagi
cache menjadi dua: satu didedikasikan untuk instruksi dan satu didedikasikan untuk
data. Ketika prosesor mencoba untuk mengambil instruksi dari memori utama,
pertama-tama ia berkonsultasi dengan cache instruksi L1, dan ketika prosesor
mencoba untuk mengambil data dari memori utama, pertama-tama ia berkonsultasi
dengan cache data L1.
Ada dua keuntungan potensial dari cache terpadu:

-Untuk ukuran cache tertentu, cache terpadu memiliki hit rate lebih tinggi daripada
cache split karena menyeimbangkan beban antara instruksi dan pengambilan data
secara otomatis.

-Hanya satu cache yang perlu dirancang dan diimplementasikan.

4.4 ORGANISASI CACHE PENTIUM 4


Evolusi organisasi cache terlihat jelas dalam evolusi prosesor mikro Intel. 80386 tidak
termasuk cache on-chip. 80486 mencakup cache on-chip tunggal 8 kB, menggunakan
ukuran baris 16 byte dan empat arah.
organisasi himpunan-asosiatif. Semua prosesor Pentium menyertakan dua cache L1
on chip, satu untuk data dan satu untuk instruksi.

Tampilan sederhana dari organisasi Pentium 4, pencahayaan tinggi penempatan tiga


cache. Inti prosesor terdiri dari empat komponen utama:

- Fetch /decode unit: Mengambil instruksi program secara berurutan dari cache L2,
menerjemahkannya ke dalam serangkaian operasi mikro, dan menyimpan hasilnya
dalam cache instruksi L1.

- Logika eksekusi di luar urutan: Menjadwalkan eksekusi operasi mikro yang


bergantung pada dependensi data dan ketersediaan sumber daya; dengan demikian,
operasi mikro dapat dijadwalkan untuk dieksekusi dalam urutan yang berbeda dari
yang diambil dari aliran instruksi.

- Unit eksekusi: Unit-unit ini menjalankan operasi mikro, mengambil data yang
diperlukan dari cache data L1 dan menyimpan hasil sementara dalam register.

- Subsistem memori: Unit ini mencakup cache L2 dan L3 dan bus sistem, yang
digunakan untuk mengakses memori utama ketika cache L1 dan L2 kehilangan
cache dan untuk mengakses sumber daya I/O sistem.

cache instruksi Pentium 4 berada di antara logika dekode instruksi dan inti eksekusi.
Cache data menggunakan kebijakan write-back: Data ditulis ke memori utama hanya
ketika mereka dihapus dari cache dan telah ada pembaruan. Prosesor Pen tium 4
dapat dikonfigurasi secara dinamis untuk mendukung caching write-through.

4.5 ISTILAH UTAMA, PERTANYAAN TINJAUAN, DAN MASALAH


Istilah Utama
Tinjauan Pertanyaan
4.1 Apa perbedaan antara akses sekuensial, akses langsung, dan akses acak?
4.2 Apa hubungan umum antara waktu akses, biaya memori, dan kapasitas?
4.3 Bagaimana prinsip lokalitas berhubungan dengan penggunaan beberapa level
memori?

Masalah
4.1 Sebuah cache set-associative terdiri dari 64 baris, atau slot, dibagi menjadi set
empat baris. Memori utama berisi 4K blok masing-masing 128 kata. Menampilkan
format alamat memori utama.
4.2 Cache set-associative dua arah memiliki baris 16 byte dan ukuran total 8 kB.
Memori utama 64-MB dapat dialamatkan byte. Menampilkan format alamat memori
utama.

LAMPIRAN 4A KARAKTERISTIK KINERJA DARI DUA TINGKAT MEMORIAS


cache yang bertindak sebagai buffer antara memori utama dan prosesor,
menciptakan memori internal dua tingkat. Arsitektur dua tingkat ini memanfaatkan
properti yang dikenal sebagai lokalitas untuk memberikan peningkatan kinerja
melalui memori satu tingkat yang sebanding.

Mekanisme cache memori utama adalah bagian dari arsitektur komputer,


diimplementasikan dalam perangkat keras dan biasanya tidak terlihat oleh sistem
operasi. Dalam lampiran ini, kita melihat beberapa karakteristik kinerja memori dua
tingkat yang umum untuk ketiga pendekatan.

Lokalitas
Dasar keunggulan kinerja memori dua tingkat adalah prinsip yang dikenal sebagai
lokalitas referensi [DENN68]. Prinsip ini menyatakan bahwa referensi memori
cenderung mengelompok.

Sebuah perbedaan dibuat dalam literatur antara lokalitas spasial dan lokalitas
temporal.
- Lokalitas spasial mengacu pada kecenderungan eksekusi untuk melibatkan
sejumlah lokasi memori yang berkerumun. Ini mencerminkan kecenderungan
prosesor untuk mengakses instruksi secara berurutan.

-Lokalitas temporal mengacu pada kecenderungan prosesor untuk mengakses lokasi


memori yang telah digunakan baru-baru ini

Pengoprasian Memori Dua Tingkat


Properti lokalitas dapat dieksploitasi dalam pembentukan memori dua tingkat. M1
digunakan sebagai tempat penyimpanan sementara untuk sebagian isi M2 yang lebih
besar.

Untuk menyatakan waktu rata-rata untuk mengakses suatu item, kita harus
mempertimbangkan tidak hanya kecepatan dua tingkat memori, tetapi juga
probabilitas bahwa referensi yang diberikan dapat ditemukan di M1.
Ts = H * T1 + (1 - H) * (T1 + T2)

= T1 + (1 - H) * T2

Ts = rata-rata (sistem) waktu akses


T1 = waktu akses M1 (misalnya, cache, cache disk)
T2 = waktu akses M2 (misalnya, memori utama, disk)
H = rasio hit (fraksi referensi waktu ditemukan di M1)

Performance
Mari kita lihat beberapa parameter yang relevan dengan penilaian mekanisme
memori dua tingkat. Pertama pertimbangkan biaya.
Cs = C1S1 + C2S2
S1 + S2
Cs = biaya rata-rata per bit untuk memori dua tingkat gabungan
C1 = biaya rata-rata per bit memori tingkat atas M1
C2 = biaya rata-rata per bit memori level yang lebih rendah M2
S1 = ukuran M1
S2 = ukuran M2

pertimbangkan waktu akses. Untuk memori dua tingkat untuk memberikan


peningkatan kinerja yang signifikan. Waktu akses cache on-chip sekitar 25 hingga 50
kali lebih cepat daripada waktu akses memori utama,waktu akses cache off-chip
sekitar 5 hingga 15 kali lebih cepat daripada waktu akses memori utama, dan waktu
akses memori utama sekitar 1000 kali lebih cepat daripada waktu akses disk.
Sekarang kita dapat mengajukan pertanyaan tentang ukuran memori relatif dengan
lebih tepat. Apakah rasio hit akan tergantung pada sejumlah faktor, termasuk sifat
perangkat lunak yang dieksekusi dan detail desain memori dua tingkat. Penentu
utama tentu saja adalah tingkat lokalitas. Dalam hal rasio hit harus menjadi fungsi
linear dari ukuran memori relatif. Jadi jika ada lokalitas yang kuat, dimungkinkan
untuk mencapai nilai rasio hit yang tinggi bahkan dengan ukuran memori tingkat atas
yang relatif kecil
Jika kita hanya membutuhkan memori tingkat atas yang relatif kecil untuk mencapai
kinerja yang baik, maka biaya rata-rata per bit dari dua tingkat memori akan
mendekati biaya memori tingkat bawah yang lebih murah.

Anda mungkin juga menyukai