NIM : 202210370311013
BAB 4
Memori cache
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.
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.
- 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.
- 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.
Jadi, memori yang lebih kecil, lebih mahal, dan lebih cepat dilengkapi dengan
memori yang lebih besar, lebih murah, lebih lambat. Kunci sukses organisasi ini.
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.
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.
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.
- Pengamatan bus dengan write through: Setiap pengontrol cache memonitor jalur
alamat untuk mendeteksi operasi tulis ke memori oleh master bus lainnya.
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.
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.
- Fetch /decode unit: Mengambil instruksi program secara berurutan dari cache L2,
menerjemahkannya ke dalam serangkaian operasi mikro, dan menyimpan hasilnya
dalam cache instruksi L1.
- 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.
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.
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.
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
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