Fungsi Pemetaan (Mapping) pada Cache Memory
Posted on Thursday, December 4th, 2014 at 1:26 pm
Mapping adalah metode yang digunakan untuk menemukan/menempatkan sebuah alamat memori dalam sebuah cache. Menyalin sebuah blok dari memori utama ke dalam cache dan digunakan juga untuk menerima data dari cache. Disini saya akan membahasa tentang Fungsi Mapping, dan Direct Mapping.
Fungsi Mapping :
Ukuran Cache 64 kB, Ukuran block 4 bytes diperlukan 16k (214) alamat per alamat 4 bytes
Jumlah jalur alamat cache 14, Main memory 16 MB maka jalur alamat perlu 24 bit (224=16M).
Direct Mapping (Pemetaan Langsung)
Pemetaan langsung adalah teknik yang paling sederhana untuk memetakan blok memori utama hanya ke sebuah saluran cache saja. i = j modulus m dan 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 terdiri dari tiga field (tag, line, word). 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.43
Jadi dalam metode ini pemetaan adalah bagian alamat blok memori utama sebagai nomer saluran cache. Ketika suatu blok data sedang diakses atau dibaca terhadap saluran yang diberikan, maka perlu memberikan tag bagi data untuk membedakannya dengan blok – blok lain yang dapat sesuai dengan saluran tersebut.
Panjang Alamat (address length) = (s + w) bits
Jumlah unit yang dialamati (number of addressable units) = 2s+w words/ bytes
Ukuran block (block size) = lebar baris (line width) = 2w words/bytes
Jumlah block dalam memori (number of blocks in main memory) = 2s+ w/2w = 2s
Jumlah baris dalam cache (number of lines in cache) = m = 2r
Ukuran Tag (size of tag) = (s – r) bits
Teknik pemetaan ini sederhana dan mudah diimplementasikan, namun mempunyai kelemahan yaitu terdapat lokasi cache yang tetap bagi sembarang blok – blok yang diketahui. Dengan demikian, apabila suatu program berulang – ulang melakukan word referensi dari dua blok yang berbeda memetakan saluran yang sama maka blok – blok itu secara terus – menerus akan di-swap ke dalam cache sehingga hit rasionya akan rendah. Ada 2 cara dalam pemetaan langsung, yaitu: Absolute Addressing (Pengalamatan Mutlak) dan Relative Addressing (Pengalamatan Relatif)
1. PENGALAMATAN MUTLAK
R(NILAI KEY) ADDRESS → NILAI KEY = ALAMAT MUTLAK
Jika nilai key yang diberikan oleh pemakai program sama dengan ADDRESS sebenarnya dari record tersebut pada penyimpanan sekunder. Pada waktu record tersebut disimpan, lokasi penyimpanan record (nomor silinder, nomor permukaan, nomor record) bila dipakai Cylinder Addressing atau (nomor sektor, nomor record) bila dipakai Sector Addressing harus ditentukan oleh pemakai.
Misalkan kita memiliki data teman-teman sekelas kita yang akan kita masukkan ke dalam memori (misal hard disk), data tersebut berjumlah 50 orang yang masing-masing terdiri atas atribut-atribut : NIM, NAMA, dan ALAMAT_RUMAH. Jika data tersebut kita masukkan dengan organisasi file sequential, maka jika kita mencari data NIM = ‘10105787’ yang namanya ‘ALI’ dan beralamat di ‘Jl. Margonda No. 100, Depok’, maka pencarian akan dilakukan mulai dari record pertama (data pertama yang dimasukkan), dan seterusnya menuju ke record terakhir sampai ketemu data yang dicari.
2. PENGALAMATAN RELATIF
R(NILAI KEY) ADDRESS → NILAI KEY = ALAMAT RELATIF
Alamat relatif dari sebuah record dalam sebuah berkas adalah urutan record tersebut dalam berkas. Sebuah berkas dengan N record mempunyai record dengan alamat relatif dari himpunan (1,2,3, …, N -2, N -1). Record yang ke I mempunyai alamat relatif I atau I – 1 (bila mulai dihitung dari 0).
Teknik ini menjadikan atribut kunci sebagai alamat memorinya, jadi, data dari NIM dijadikan integer dan dijadikan alamat dari record yang bersangkutan.
Cara ini sangat efektif untuk menemukan kembali record yang sudah disimpan, tetapi sangat boros penggunaan memorinya. Tentu alamat memori mulai dari 1 hingga alamat ke sekian juta tidak digunakan karena nilai dari NIM tidak ada yang kecil. Teknik ini termasuk dalam ketagori address space dependent.
Sumber :
http://javaandro.blogspot.com/2014/06/makalah-cache-memory.html