Teknik Manajemen Memori Oleh : Devie Rosa Anamisa
Pengembangan teknologi dalam perjalanan waktu menawarkan memori dengan kapasitas besar, kecepatan tinggi dengan harga murah. Untuk itu, perancang komputer menemukan beberapa teknik desain untuk mengembangkan memori kecil dan lambat disebut teknik manajemen memori.
Hirarki Memori Teknologi memori seperti: memori semikonduktor, hard disk magnetik, pita magnetik, disk optik.
4 Teknik Prosesor Untuk Memori yang Lambat Pefetch Instruksi Interleave Memori Buffer Tulis Memori Cache
Prefetch Instruksi Tujuannya : untuk mendahului ketika ada instruksi dieksekusi oleh prosesor dan terdapat instruksi berikutnya dari memori utama. Penyangga prefetch digunakan untuk menyimpan suatu antrian instruksi karena beberapa instruksi diambil sebelumnya dari memori utama. Prefetch instruksi adalah suatu fitur hardware dan program yang bukan menyangkut keberadaan antrian instruksi. Contoh : Instruksi skrg adalah instruksi JUMP Instruksi berikutnya tidak berada pada antrian Sehingga antrian kosong dan prosesor harus menunggu waktu pengambilan instruksi setelah setiap instruksi JUMP
Interleave Memori Bandwidth memori : jumlah byte yang ditransfer per detik. CPU mampu menangani bandwidth yang lebih tinggi dari memori. Karena itu CPU harus istirahat/menunggu instruksi atau data dari memori. Interleave Memori : Suatu teknik reorganisasi memori utama menjadi modul-modul independen yang jamak agar bandwidth ditingkatkan menjadi beberapa kali.
Kelemahan Interleave Memori : Diperlukan pendekodean bank dan sirkuit enable. Hal ini meningkatkan biaya. Waktu tunda nominal didahului oleh sirkuit logika pendekode akses efektif dan bandwidth. CPU harus mempunyai sirkuit logika tambahan untuk memulai dan menangani serangkaian siklus baca/tulis memori.
Buffer Tulis Kebalikan dari prefetch instruksi Buffer tulis berisikan: Alamat memori Data yang akan ditulis Fungsi : Dapat digunakan untuk menyimpan informasi untuk lebih dari satu operasi tulis. Cara kerja : CPU menulis data ke memori utama dan buffer tulis menyimpan hasil dari suatu instruksi tersebut. Jika memori sibuk mengerjakan beberapa operasi maka buffer tulis mengajukan waktu tunggu pada CPU.
Memori Cache Adalah suatu buffer tengah antara CPU dan memori Utama. Tujuan : Untuk mengurangi waktu tunggu CPU selama pengaksesan memori utama. Akibat sistem tanpa memori cache : Waktu akses memori utama lebih besar dari periode clock prosesor. Kecepatan CPU yang tinggi terbuang selama akses memori.
Macam-macam operasi cache : Temporal Locality Instruksi yang sedang diambil dapat diperlukan kembali dengan segera Spatial Locality Instruksi-instruksi yang berdekatan dengan instruksi sekarang dapat diperlukan segera. 3 metode pemetaan memori cache: Pemetaan Langsung Pemetaan Asosiatif penuh Pemetaan asosiatif set
Pemetaan Langsung Alamat memori utama dikelompokan dalam 3 field : TAG LINE WORD : bit-bit dalam WORD menunjukkan banyaknya word dalam blok. Rumus : Icm = bmm modulo c Dimana Icm = nomor baris cache bmm = nomor blok memori utama C = jumlah total baris cache Untuk menentukan jumlah blok, memori cache mempunyai c baris dan memori utama mempunyai m blok
Pemetaan Asosiatif Penuh Alamat memori terdiri dari : TAG : menunjukkan nomor blok memori Bila prosesor melakukan operasi pembacaan memori, pengontrol cache harus mencocokkan field TAG dalam alamat dengan isi TAG pada semua baris dalam cache. Jika cocok maka blok yang tersimpan dalam baris tersebut dibaca oleh cache. Jika tidak cocok maka pengontrol cache memulai operasi pembacaan memori utama. WORD : log2 B, dimana B adalah jumlah word dalam blok.
Contoh : Misalkan sebuah memori utama mempunyai 2K blok, memori cache 32 baris, dan setiap blok terdiri atas 8 word. Tunjukkan contoh pemetaan asosiatif penuh. Jawab: Field word : log2 B = log2 8 = log2 2^3 = 3 bit
Pemetaan Asosiatif Set Merupakan gabungan konsep pemetaan langsung dan pemetaan asosiatif, untuk memberikan biaya efektif dan kelayakan skema pemetaan yang fleksibel. Format mempunyai 3 field : TAG SET : menyediakan nomor set WORD Rumus : r = s x l dimana : r = jumlah total baris memori cache s = jumlah set memori cache l = jumlah baris didalam set
Contoh : Misalkan sebuah memori utama mempunyai 2K blok, memori cache 32 baris, dan setiap blok terdiri atas 8 word. Tunjukkan contoh pemetaan asosiatif set dengan jumlah blok dalam setiap set adalah 4. Jawab : S = r/ l = 32 / 4 = 8 set maka field set : log2 8 = log2 2^3 = 3 bit
Memori Virtual Diperlukan jika : Keuntungan : Ruang memori utama prosesor tidak cukup untuk menjalankan program besar Ukuran fisik memori utama dibiarkan kecil untuk mengurangi biaya walaupun prosesor mempunyai ruang memori logik yang besar. Keuntungan : Ukuran program tidak dibatasi oleh ukuran memori fisik Pemakai tidak perlu mengestimasi alokasi memori Program dapat diload dalam suatu area memori fisik karena program tidak menggunakan alamat fisik.
Dua metode implementasi memori virtual: Paging Software sistem membagi program menjadi sejumlah page. Segmentasi Pemrogram (bahasa mesin) menyusun program kedalam segmen-segmen berbeda.