bellek performansinin arttirilmasi
1. giris
on bellek performansi, gelismis islemcilerdeki buyuk etkisi nedeniyle surekli onem kazanmaktadir. son 10 yil sonunda sonunda gorulmektedir ki cevrim suresi ana bellek erisim suresine gore gore daha hizli bir sekilde dusmektedir. bunlara ek olarak cisc’ten risc’e gecen surecte komut basina dusen ortalama makine cevrimi de gozle gorulur sekilde dusmektedir. bu iki etki birbirini surekli tetikler durumda erisimsizlik maliyetlerinde cok yuksek artislara neden olmaktadir.
ozellikle ana bellek erisim suresinin makine cevrim suresine oranindaki artisi da goz onune alindiginda bu egilimin devam edecegi acikca gorulmektedir. ilerleyen donemlerde, bir gorev icin sadece iki komutu islemekte olan super olcekli bir bilgisayarda on bellek erisimsizligi 100 komut cevrimi suresi uzunlugunda bir zamana mal olacaktir. bu kayip da, iyi bilinen on bellek duzenlemesi tekniklerine ragmen, performansta yari yariya bir dususe neden olacaktir.
bu calismada, performans arttirabilmek icin yeni donanim tekniklerini inceleyecegiz.
2. anahat tasarimi
mib, kayar nokta birimi, bellek yonetim birimi (orn: tlb) ve 1. duzey komutlar ve ayni yongadaki ya da gelismis paketleme teknolojisi kullanilarak uretilmis yuksek hizli bir birimdeki veri saklantilari…(ilerleyen bolumlerde mib tek bir yonga olarak olarak algilanmis ancak kavramsal olarak butun bir islemci kastedilmistir)
yonga yerlesik on belleklerin beklenen buyuklugu islemcinin yapim teknigi ile degisiklik gostermektedir. fakat yuksek hizli teknolojiler, yonga yerlesik on bellekler uzerinde kucuk etkiler yaratir. yonga yerlesik on bellekler cmos yapilar icin uygundur, tersi durum da (harici duzenlemeler) gaas ya da bipolar islemciler icin uygunluk tasir. yani gaas islemciler hizli olmalarina ragmen erisimsizlik oranlari yuksektir. yine tersi sekilde yuksek erisim saglayan cmos teknolojisinde de malzeme fiziginden kaynaklanan gecikmeler soz konusudur. her turlu durumda 1. duzey on belleklerde en hizli erisim saglandigi icin bu bellekler dogrudan eslemeli olarak yapilandirilir.
duzey onbellekler 512kb~16mb arasinda boyut almaktadir ve bu duzenlemede cok yuksek hizli ram ler kullanilir. benzer performans kriterleri nedeniyle 1. duzeyde oldugu gibi dogrudan eslesmeli olarak yapilandirilmistir. bu yapi icin erisim suresi 16~30 ns arasinda degisiklik gosterir. 2. duzey onbellegin uygun bant genisligi saglayabilmesi icin boru hatti yapisinda olmasi gerekmektedir. saklantilar her alti ya da yedi komutta bir gercekleneceginden boru hatti yapisinda olmayan bir on bellek, yedi komut suresinden daha yuksek erisim suresi icinde olusan bir trafigi tasiyamayacaktir.
ecl g/c yapisina sahip on bellek yongalari ve yazaclar ya da kilitler, boru hatti yapisindaki on bellekler icin idealdir. 2. duzey bir on bellek erisiminde boru hatlarinin sayisi, boru hattinin islemci yongasindan onbellek yongasina gidip gitmedigine ya da yolun yonlulugune gore 2 ya da 3 arasinda degisir.
her mip basina birkac bellek bolgesi saglayan bir sistemde yeterli boyutu saglamak icin ana bellek 512kb~4gb arasi olmalidir.
daha detayli bir sekilde denektasi grafiklerinde de erisimsizlikler gorulecektir ki; surekli cizginin altindaki alan sistemin net performansini, ustundeki alan ise bellek siraduzenselligi icerisindeki performans kaybini ve iki kesikli cizgi arasindaki alan ise 1. duzey on bellek ersimsizliklerinden kaynaklanan performans kaybini ifade etmektedir. yine gorulecegi gibi denektasimiz olagan performansinin yarisini kaybetmektedir. buna gore performansin en yuksek seviyesine bellek siraduzenselligi gelistirilerek ulasilacaktir.
3. catisma erisimsizliklerinin azaltilmasi
erisimsizlikler 4 grup altinda incelenebilir.
3.1. catisma kaynakli
3.2. baski kaynakli
3.3. siga kaynakli
3.4. tutarlilik kaynakli
dogrudan eslemeli on belleklerin iliskilendirmedeki yetersizliklerinden dolayi catisma erisimsizlikleri olsa da performanslari bulma icin erisim sureleri goz onune alindiginda kume eslemeli on belleklere gore yuksektir. catisma erisimsizlikleri, tum dogrudan eslesmeli on bellek erisimsizliklerinin % 20~40ini olusturmaktadir(sekil 3.1) 1. duzey veri saklanti erisimsizliklerinin cok buyuk kisminin catisma kaynakli oldugunu soylemek asla yanlis degildir.
3.1 erisimsizlik saklantisi
dogrudan eslemeli bir bellege 1. duzey on bellek ve 2. duzey bir on bellegin erisim baglantisina bir erisim saklantisi ekleyerek iliskilendirilmislik katabiliriz. bu eklenti kucuk bir tam iliskilendirmeli ve 2 ila 5 on bellek satiri tutabilen bir on bellektir. erisimsizlik oldugunda veri dogrudan eslestirmeli on bellege gittigi gibi, son zamanda kullanilmis nesne ile yer degistiren erisimsizlik saklantisi da sinanacaktir. adres bulundugu halde erisimsizlik saptanirsa bu defa dogrudan eslemeli bolum bir sonraki cevrimde tekrar yuklenerek sadece 1 cevrimlik gecikmeyle yeniden yuklenir.
komut catismalari genis alan kaplamaya egilimlidirler, cunku bir yordam icerisindeki bir komut, yordam boyutu onbellek boyutundan buyuk olmadigi surece catismayacaktir. catisma erisimsizlikleri genellikle baska bir yordam cagirildiginda olusur. ornegin her yordamin 60 degisik komuta sahip oldugunu dusunelim catisma erisimsizlikleri 15 satirdan daha genis bir uzayi isgal edecektir.
iki karakter katarinin karsilastirilmasini dusunelim; ayri veriler icin ayni satira basvurulan bir basvuru noktasi var ise farkli katarlar icin basvuru kaynagi on bellek icerisinde erisimsizlik olusturacaktir. basvuru erisimsizliginin nasil duzeltildigi ise sekil 3.3 de gostermistir. 2 girdiden olusan 4kb lik bir veri saklantisi, catisma erisimsizliklerinin ortalama olarak %25ini, tum veri saklantisinin ise %13unu dengelemektedir.
veri saklantisini ikiye katlamanin sagladigi %32lik duzelmeyi takiben, 1. duzey on bellege ilave edilen her satir erisimsizligi %0.13 azaltir.
3.2 adak saklantilama (victim caching)
dogrudan eslesmeli ve erisimsizlik saklantili bir sistemi dusunelim; erisimsizlik olustugunda, hem veri hem erisimsizlik saklantisina hem de dogrudan eslemeli on bellege yuklenir ve hemen algilandigi uzere gereksiz yere bellek kullanilmis olur. erisimsizlik saklantisini daha etkin kullanabilmek icin yeni bir yer degistirme cozumlemesi yapilabilir. erisimsizlik sonucu talep edilen verinin erisimsizlik saklantisina yuklenmesi yerine, bu verinin tam iliskilendirmeli on bellege bir adak satiri ile yuklenmesi daha uygun olacaktir(adak saklantilama). boylece dogrudan eslemeli on bellek ve adak saklantida ayni veri satiri ciftlenmeyecektir. dogrudan erisimli onbellekteki erisimsizlik halinde ise erisim adak bellekte olacaktir.
basvuru akisina bagli olarak adak saklantilama, erisimsizlik saklantilamasi uzerine cok genis capta etki eder. ornek olarak icerisinde bulunan bir dongusunun, dongu govdesiyle catistigi kucuk bir altyordami ele alalim; eger yordam ve dongu govdesi arasinda catisma olusturan satirlarin sayisi, erisimsizlik saklantisinin satir sayisindan buyuk ise erisimsizlik saklantisi, dongu kendisi uzerine tekrar gelinceye kadar deger uretemeyecektir. adak saklantisi kullanilmasi durumunda ciftlenen catismalar karsilastirilacak ve erisimsizlik saklantisinda kalan cift parcasi temizlenmis olacaktir.
3.3 dogrudan eslemeli on bellek boyutunun adak saklantisi performansina etkisi
genelde kucuk boyutlu dogrudan eslesmeli on bellekler cogu adak saklantili yapidan avantajlidir. dogrudan eslesmeli/adak saklantili karsilastirmasinda 2 etken onemlidir.
dogrudan eslesmeli on bellek buyurken adak saklanti boyutu gorece kucuk olacaktir; dogrudan eslesmeli on bellek boyutu buyuyebilecektir ancak satir boyutu 16 kb’ ta tutularak olasi bir dar alan catismasi engellenebilir.
catisma erisimsizligi yuzdesi 1kb~32kb araliginda hizla dusmektedir.; catisma ersimsizligi yuzdeleri duserken, bu erisimsizliklerin adak saklantilama ile duzeltilen kisminin yuzdesi de dusecektir.
ilk etki baskin etkidir, keza catisma erisimsizlikleri buyuk boyutlu belleklerde hizla yukselirken adak saklanti performansi ise daha yavas yukselir.
3.4 satir boyutunun adak saklanti performansina etkisi
beklendigi gibi bu seviyede satir boyutu arttiginda artan catisma erisimsizligi sayisi, adak saklanti tarafindan yapilan erisimsizlik duzeltimi yuzdesini arttirir. buyuk satir boyutuna sahip adak saklantili sistemler, adak saklantisiz sistemlere gore
daha avantajlidir, cunku uzun satirli on belleklerdeki catisma erisimsizlikleri adak saklanti tarafindan duzeltilecektir.
3.5 adak saklantilar ve 2. duzey on bellekler
adak saklantilarin 2. duzey on bellekler icin kullanisli olmasi beklenmektedir. catisma erisimsizlikleri artan satir sayilariyla, artacagi icin 2. duzey on belleklerin satirlarinin genis olusu adak saklantinin kullanisliligini arttirmaya meyillidir.
adak saklantilarin sira disi yani, on bellek siraduzenselligini zorlayan yapilaridir. bununla beraber anahat tasarimindaki 2. duzey bir on bellegin satir boyutu 1. duzeydeki bir on bellek satir boyutundan 8 ya da 16 kat daha buyuktur.
2. duzeyde kullanilan bir 1. duzey adak saklanti yapisi catisma erisimsizliklerini dusurecektir. 2. duzey icin olan adak saklantilari incelenmek istenirse her iki duzenlemede de 1. duzey adak saklantili ya da 1. duzey on belleksiz olup olmadigi goz onunde tutulmalidir.
4.sigasal ve baskisal erisimsizliklerin azaltilmasi
baskisal erisimsizlikler herhangi bir onbellek yerlesiminde gorulebilir, ve verinin bir parcasinin ilk basvurusunun olmamasindan kaynaklanir.
sigasal erisimsizlikler ise adindan anlasilacagi uzere bellek boyutunun yetersizliginden kaynaklanmaktadir. bu erisimsizlik bu erisimsizliklerinin onune gecmenin bir yolu satir sayilarini uzatmak ya da on-getirme(prefetch) yontemleri kullanmaktir. bununla beraber satir boyutu arttirildiginda erisimsizlik orani artacak ve beraberinde artan bir veri aktarim yuku getirecektir.
bir veri blogu 0 – 1 gecisi yaparken ardil bloguna on-getirme islemi yapilir, salt sirali bir basvuru akisinda bu uygulama eger getirme islemi yeterince hizliysa erisimsizlik yaratmaz ancak taban sistemdeki gecikme sureleri bunu imkansiz kilar. 4 komutluk satir genisligi nedeniyle, on-getirme uygulanan satirlar on bellekleme yapilmamis duz satir kodlariyla 4 komut cevrimi suresinde getirilmektedir. cunku taban sistemin 2. duzey on bellegi erisim icin cok fazla cevrime ihtiyac duyar ve makine bircok cevrim basina komut gercekleyebilir.
4.1 akis yataklari
yapmamiz gereken sey, on-getirme islemini bir etiket gecisi olusmadan basarabilmektir. bunu saglamak icin bir akis yatagi kullanmak gerekecektir.
akis yatagi, her biri bir etiket, uygun bir bit ve veri hatti iceren paketlerden olusur. erisimsizlik oldugunda, akis yatagi erisimsizlik ureten hedeften baslayarak uygun hatlari getirmeye baslar, her getirme istemi yollandiginda adres etiketi, akis yatagina girilir ve uygun bit olumsuz(false) olarak isaretlenir. veri kirliliginin engellenmesi icin erisimsizlik sonrasi istenen satir, on bellege alinmadan once akis yatagina tasinir. herhangi bir satir, bir akis yatagindan on bellege tasinirken yatak icerisindeki girdiler birer birer yukariya otelenir ve yeni uygun adresin getirilmesi saglanir.
4.2 cok yonlu akis yataklari
genel bir degerlendirme olarak akis yataklari komut erisimsizliklerinin %72sini duzeltebilirken veri erisimsizliklerinde ise bu yuzde %25lere dusmektedir. veri basvurulari icin de, akis yatagi performansini arttirabilmek icin, cok yonlu akis yataklari kullanilir.
burada ise bir onceki yataklama islemine benzer sekilde 4 yonlu bir yataklama yapilarak veri erisimsizliklerinin onune gecilmeye calisilmistir. beklendigi gibi komut akisi gorsel olarak degismeyecek, baska bir deyisle; basit bir tekil akis yatagi ya da cok yonlu akis yatagi komut bazinda bir degisiklik gostermiyorken, 4 yollu akis yataklamasi veri bazinda olusan erisimsizligin %43unu duzeltebilecektedir. bu da tekil yataklamaya oranla 2 kat iyilestirilmis bir performans anlamina gelmektedir.
4.3 akis yatagi performansi ve on bellek boyutu
komut akis bloklari genis bir on bellek boyutu tanim araliginda sabit performans sunarlar, genel olarak tekil akis yataginin performanslari on bellek boyutuyla ters orantilidir.
4.4 akis yatagi performansi ve satir boyu
erisimsizliklerdeki duzeltim 8byte boyundaki bir satirdan 128byte boyundaki bir satira gidildikce 6.8lik bir etkiyle ile dusmektedir. ayni aralikta 4 yonlu bir akis yatagi ile erisimsizlik duzeltimi 4.5lik bir etkiyle dusustedir. diger bir deyisle bir veri parcasina erisildiginde diger veri parcasindan 128 byte cekmek icin hazir beklenecektir.
her iki turlu yataklama da 128 byte lik bir satir boyu icin en yuksek %40lik bir erisimsizlik duzeltmesi saglarken, satir boyu 8byte a dustugunde bu oran %80lere cikmaktadir. buna neden olarak ise, catisan komut basvurusu akislarinin genis parcacikli yapisi ya da 128byte’i asan yordam ya da yordam parcalari gosterilebilir.
bilgisayar mimarileri dersine ait makale calismamdan alintidir. alin teridir, konularyn genel hatlary ieee yayynlaryndan bulunabilir.
.
on bellek performansinin arttirılması
neden bekliyorsun?
bu sözlük, duygu ve düşüncelerini özgürce paylaştığın bir platform, hislerini tercüme eden özgür bilgi kaynağıdır.
katkıda bulunmak istemez misin?