Organisasi Cache

Friday, June 11, 2010 |

Perhatikan masalah penempatan suatu blok data/instruksi dari memori utama ke baris-baris cache.
Ada tiga macam organisasi cache
• organisasi cache dipetakan langsung (direct-mapped)
• asosiatif penuh (fully associative)
• asosiatif-kelompok ( set-associative).
Misalkan pengalamatan 32-bit
• 6-bit = offset menentukan byte mana dalam blok itu yang dialamati.
• 10 bit berikutnya menentukan pada baris mana blok yang diambil harus ditempatkan.
• Bit sisanya, yakni 16-bit paling atas = tag yang bersesuaian dengan baris cache.
Organisasi cache yang dipetakan langsung :
• menyimpan satu tag perbaris dalam larik tag-nya
• Selama pengaksesan memori, cache menggunakan bit-bit tengah alamat sebagai indeks ke larik tagnya.
• Tag dicocokkan dengan 16-bit teratas dari alamat memori yang diakses.
• Jika cocok, data yang ditunjukan oleh nilai offset akan dikirim ke prosesor. Bila tidak cocok, isi baris cache diganti dengan blok yang diperlukan, dari memori utama.
• Hanya memerlukan satu kali pembandingan untuk setiap akses ke cache.
• Cocok untuk sistem komputer yang memerlukan frekuensi detak tinggi

Dalam rancangan cache asosiatif-penuh :
• Suatu blok data dapat ditempatkan pada baris cache manapun.
• Alamat dibagi menjadi dua bagian yakni bit rendah dan bit tinggi.
• Bit rendah membentuk offset di dalam baris cache, sedangkan bit tinggi membentuk tag untuk dicocokkan dengan rujukan.
• Cache asosiatif-penuh harus punya mekanisme untuk menentukan ke dalam baris mana blok ditempatkan.
• Blok dapat ditempatkan dalam baris manapun yang kosong. Bila semua baris cache penuh harus ditentukan blok mana yang dikeluarkan dari cache.
• Digunakan prinsip LRU (least recently used) yakni blok yang paling lama tidak dipakai dikeluarkan dari cache.
• Cukup mahal mengimplementasikannya.
• Resiko : memperbanyak implementasi rangkaian hardware untuk membandingkan tag thdp semua brs cache. Dalam rancangan cache asosiatif-kelompok :
• Untuk memperkecil resiko tersebut sekaligus mengurangi terjadinya konflik alamat, dirancang organisasi cache yang lain yakni asosiatif-kelompok (set-associative).
• Satu kelompok terdiri atas beberapa baris.
• Bit alamat bagian tengah menentukan kelompok baris di mana suatu blok ditempatkan.
• Dalam setiap kelompok, cache dipetakan secara asosiatif-penuh.
• Memudahkan implementasi teknik LRU (least recently used).
• Bit tengah dari alamat digunakan untuk memilih sekelompok baris (bukan hanya satu baris seperti pada sistem pemetaan langsung).
• Tag alamat kemudian dicocokkan dengan tag seluruh baris cache yang dipilih.

Mikroprosesor Amd486DX2, misalnya, memiliki 8 KB cache asosiatif-kelompok empat-jalan (four-way set-associative) dengan baris masing-masing selebar 26 byte. Cache sebesar 8 KB tersebut dibagi menjadi 128 kelompok yang masing-masing terdiri atas empat baris.

Selain ketiga organisasi cache di atas, pada masa-masa awal pemanfaatan sistem cache beberapa jenis prosesor menggunakan cache, dengan pemetaan-sektor. Pada pemetaan sektor, baik memori utama maupun cache dibagi menjadi sektor-sektor. Setiap sektor terdiri atas sejumlah blok. Sembarang sektor pada memori utama dapat terpetakan ke sembarang sektor dalam cache, dengan suatu tag disimpan bersama tiap-tiap sektor dalam cache untuk mengidentifikasi alamat sektor memori utama. Dalam pengirimannya ke cache atau pengembaliannya ke memori utama, data/instruksi tidak dikirim sektor per sektor tetapi blok per blok.
Pada saat terjadi kesalahan sektor (sector miss) blok yang diperlukan dari satu sektor dipindahkan ke lokasi tertentu dalam satu sektor. Lokasi sektor dalam cache dipilih berdasarkan algoritma penggantian tertentu. Desain ini sudah tidak populer lagi karena prosentase kena (hit) lebih rendah dibanting dengan organisasi asosiatif-kelompok.

1 komentar:

Anonymous said...

keren mas....
terima kasih banyak...
saya banyak terbantu melalui blog ini....

Post a Comment