Dergiler / Gazi Üniversitesi Mühendislik Mimarlık Fakültesi Dergisi / 2013 / Cilt: 28 - Sayı: 3

ÇOK ÇEKİRDEKLİ İŞLEMCİLERDE SET-BAZLI DİNAMİK ÖNBELLEK BÖLÜNMESİ

SET-BASED DYNAMIC CACHE PARTITIONING ON CHIP MULTIPROCESSORS

Sayfa
545–554
DOI
—

Özet

Günümüzde çok çekirdekli işlemciler, çekirdek-dışı bellek erişimlerindeki gecikmeleri azaltmak için çekirdekler tarafından paylaşılabilen bir son seviye önbellek içermektedir. Ancak, çekirdekler üzerinde paralel olarak çalışan uygulamalar çok fazla sayıda önbellek çatışmasına yol açarak bu tip önbelleklerden elde edilebilecek faydaları kısıtlayabilmektedir. Literatürde bu önbellek seviyesini bölümleyerek her uygulamaya özel bir alan yaratan ve sonuçta önbellek çatışmalarını azaltmaya çalışan birçok çalışma mevcuttur. Genelde bu çalışmalar her bir çekirdeğe ihtiyacına uygun sayıda önbellek yolu atamaya odaklanmıştır. Bunun yanında son zamanlarda önerilen set bazında önbellek bölümlenmesi öneren çalışmalar da mevcuttur. Set-bazlı bölümlemenin yol-bazlı bölümlemeye göre birtakım avantajları bulunmaktadır. Bu çalışma, son seviye önbellek yapılarını set-bazlı olarak bölerek işlemci başarımının iyileştirilmesini hedeflemektedir. Bölümleme kararları, donanım yardımı ile periyodik olarak toplanan, çalışan uygulamalara ait çalışma-anı istatistikleri yardımıyla verilmektedir.

Abstract

Today, most of the chip multiprocessor architectures utilize a shared last level cache to reduce the off-chip memory delay. Benefit from such a cache may be very limited due to cache conflicts caused by applications running in parallel. In the literature, there are numerous studies that try to reduce cache conflicts by partitioning this cache level and allocating dedicated cache areas to each application. These studies generally focus on policies dedicating an appropriate number of ways to each core. There has also been recent studies suggesting set-based cache partitioning. Set-based partitioning has a number of advantages over way-based partitioning. This study aims to improve the processor performance by using a mechanism to dynamically partition the cache based on sets. The resizing decisions for partitions are made according to statistics collected at periodic intervals.