Cache Memori Oleh : Ahmad Fuad Hariri Fitriana Nelvi Tino Arif Cahyo Sarwo Eddie Wibowo
Cache Memory Idealnya, kecepatan processor harus diimbangi oleh kecepatan memory yang dalam hal ini adalah main memory. Cache memory adalah memori berkapasitas terbatas, berkecepatan tinggi yang lebih mahal dibanding memori utama. Cache memori terletak diantara memori utama dan register CPU, dan berfungsi agar CPU tidak langsung mengacu ke memori utama tetapi di cache memori yang kecepatan aksesnya lebih tinggi. Metode ini akan meningkatkan kinerja system.
CACHE MEMORY Dahulu cache disimpan di luar prosesor dan dapat ditambahkan. Untuk meningkatkan kinerja, saat ini cache ditanamkan di prosesor. Kecepatan memori utama sangat rendah dibandingkan kecepatan prosessor modern. Untuk performa yang baik, prosessor tidak dapat membuang waktunya dengan menunggu untuk mengakses instruksi dan data pada memori utama. Karenanya sangat penting untuk memikirkan suatu skema yang mengurangi waktu dalam mengakses informasi. Karena kecepatan memori utama dibatasi oleh batasan elektronik dan packaging, maka solusinya harus dicari pada sistem arsitektur yang berbeda.
Solusi yang efisien adalah menggunakan memori cache cepat yang sebenarnya membuat memori utama tampak lebih cepat bagi prosesor daripada sebenarnya. Buffer berkecepatan tinggi yang digunakan untuk menyimpan data yang diakses pada saat itu dan data yang berdekatan dalam memori utama Waktu akses memori cache lebih cepat 5 – 10 kali dibandingkan memori utama
Syarat Virtual Memori Agar memori virtual dapat diterapkan dan efektif, diperlukan 2 hal : Hardware yang mendukung teknik pagging / segmentasi dapat dilakukan. SO harus memiliki software untuk mengatur perpindahan page / segmen antara memori utama dan sekunder.
Paging Memori utama dipartisikan menjadi chunk-chunk kecil berukuran tetap yang disebut frame. Program di pecah-pecah menjadi page-page oleh compiler atau sistem manajemen memori. Fragmentasi internal di dalam frame. SO harus memiliki page tabel bagi setiap proses yang menunjukkan frame mana tempat berada masing-masing page.
Segmentasi Implikasi Virtual Memori Menyederhanakan penanganan perkembangan struktur data. Memungkinkan program untuk di ubah dan dikompilasi ulang secara independen. Membiarkan dirinya berbagi-pakai proses. Memungkinkan dilakukan proteksi.
Gabungan Paging dan Segmentasi Sebuah ruang alamat pengguna dipecah menjadi beberapa segmen yang diinginkan dengan keinginan pemrogram. Kemudian setiap segmen dibagi menjadi beberapa page berukuran tetap, yang panjangnya sama dg frame memori utama.
Beberapa Masalah Beberapa masalah rancangan dukungan sistem operasi yg berkaitan dg manajemen memori : Kebijakan pengambilan Kebijakan penempatan Kebijakan penggantian Manajemen resident set Kebijakan pembersihan Kontrol pemuatan
Trade-Off Pada Desain Memory
PRINSIP KERJA MEMORI CACHE Cache berisi salinan sebagian isi memori utama Pada saat CPU membaca sebuah word memory, dilakukan pemeriksaan untuk mengetahui apakah word berada berada di cache Jika word berada di cache, maka akan dikirimkan ke CPU yang dikenal sebagai proses HITT Jika tidak ada, maka blok memori utama yang terdir idari sejumlah word tetap akan diletakkan di cache yang dikenal sebagai proses MISS dan selanjutnya dikirim ke CPU
Cache memory berisi copy dari sebagian isi dari main memory. Processor akan mencari word pada cache memory terlebih dahulu jika membutuhkan suatu word. Jika word yang dicari ada pada cache, maka processor langsung akan membacanya. Jika word yang dicari tidak ada, maka beberapa blok dari main memory akan di load ke cache, dan dedeliver ke processor.
Cache & Memory Structure
Cache & Memory Structure
Cache Design Beberapa point yang diperhatikan dalam design suatu cache memory adalah sebagai berikut : Cache size Block size Mapping function Replacement algorithm Write policy
Memory-Mapped File Memory-mapped file I/O membolehkan file I/O diperlakukan sebagai rutin akses memori yang dipetakan sebagai blok disk ke dalam page memori Suatu file diinisialisasikan menggunakan demand pagin. Suatu bagian page file dibaca dari file sistem ke page fisik. Subsequent membaca/menulis ke/dari file yang diperlakukan dalam urutan memori akses. Secara sederhana file akses memperlakukan file I/O melalui memori melalui read() write() system calls. Beberapa proses juga dapat dipetakan pada fiel yang sama pada memori yang di-share.
Memory Mapped Files
Page Replacement Mencegah alokasi yang berlebihan dari memori dengan memodifikasi layanan rutin page-fault melalui page Menggunakan modify bit untuk mengurangi overhead transfer page – hanya modifikasi page yang ditulis di disk. Page replacement melengkapi pemisahan antara memori logik dan memori fisik – virtual memori yang besar dapat memenuhi kebutuhan memori fisik yang kecil.
Kebutuhan Page Replacement
Basic Page Replacement Tentukan lokasi yang diminta page pada disk. Tentuka frame bebas : Jika tersedia frame bebas, maka dapat digunakan Jika tidak tersedia frame bebas, gunakan algoritma penggantian untuk memilih kandidat frame. Baca page yang dituju ke dalam frame bebas (yang baru). Update page dan frame table. Restart process.
Page Replacement
Algoritma Page Replacement Pilih page fault terendah. Evaluasi algoritma dengan menjalankan particular string dari memori acuan (reference string) dan menghitung jumlah page fault dari string. Contoh, reference string sebagai berikut : 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5.
How is the hierarchy managed? Registers ↔ Memory by compiler (programmer) Cache ↔ Memory by the hardware Memory ↔ Disks by the hardware and operating system (virtual memory) by the programmer (files)
Direct Memory Access (DMA) - 1 Interrupt-Driven I/O dirasa lebih efisien daripada programmed I/O, namun Interrupt-Driven masih memerlukan intervensi aktif dari processor. Kesulitan yang dihadapi oleh programmed I/O dan Interrupt- Driven I/O adalah : Kecepatan transfer I/O dibatasi oleh kecepatan processor dalam memeriksa dan melayani perangkat eksternal. Processor terikat oleh kegiatan mengatur transfer I/O.
Direct Memory Access (DMA) - 2 Jika terdapat data yang bervolume besar, diperlukan teknik yang lebih efisien. Direct Memory Access (DMA) diperkenalkan sebagai solusi untuk menyediakan modul yang terpisah yal ng terdapat pada sistem BUS atau menggabungkanya dengan modul I/O. Pada saat akan melakukan pembacaan atau penulisan suatu blok data, processor mengeluarkan perintah ke modul DMA dengan cara mengirimkan informasi sebagai berikut : Apakah read atau write yang diminta ? Apakah perangkat I/O terlibat ? Lokasi awal dalam memory yang akan dibaca atau ditulis ? Jumlah word yang akan dibaca atau ditulis ?
Direct Memory Access (DMA) - 3 Setelah memberikan perintah ke DMA, processor melanjutkan eksekusinya atas instruksi yang lain. DMA melakukan transfer data dari perangkat eksternal ke main memory tanpa intervensi processor. Setelah process transfer selesai, DMA akan melakukan interrupt ke processor. Sehingga processor hanya dilibatkan pada permulaan dan akhir dari proses transfer.
CONTOH PENGAKSESAN MEMORI CACHE
Kesimpulan Memori Virtual digunakan untuk menampung proses sebanyak mungkin dan membebaskan pemrogram dari batasan-batasan ukuran dalam membuat program. Semua referensi alamat merupakan referensi-referensi logika yg ditranslasikan pada saat run time menjadi alamat real. Dua pendekatan untuk terciptanya memori virtual adalah paging dan segmentasi. Pada paging, setiap proses dibagi menjadi page-page berukuran kecil yang berukuran tetap. Pada segmentasi, dibuat menggunakan potongan-potongan yang ukurannya dapat berubah-ubah. Teknik virtual memori memerlukan dukungan hardware (software) dan software.