Koşullu Dallanma Dinamik Dallanma Pentium - Web Tasarımı, Programlama, Eğitim Meslekler ve Rehberlik

Koşullu Dallanma Dinamik Dallanma Pentium

7 KOŞULLU DALLANMALAR İÇİN KALIP TANIMI

Pentium III islemcileri, ilerleme kaydeden kalip tanimi mekanizmasina sahip olup, dogru olarak tahmin edilecek dal komutlaridir, örnegin her dört zamanda alinip, diger üç zamanda da düsürülüyorlar. Hatta Pentium III tahmin edebilir ve tekrarlanabilir dallanma ve dallanmama kalipli 5 periyot ve daha yüksek periyotlu kaliplardir.

İki seviyeli dallanma tahmin uyum semasi olarak adlandirilan bu mekanizma T.-Y. Yen ve Y. N. Patt tarafindan icat edilmistir. Bu mekanizma Popline’in tanimi olan ayni çesit iki bitlik dayandiriliyor (fakat asimimetrik bozukluksuz). Sayaç dallanmayi aldigindaincrement, dallanmayi almadiginda ise decrement’tir. Sayaçta üçden yukari veya sifirdan asagi sayildiginda sarilmaz. Bir dal komutu benzer sayaç 2. veya 3. durumdayken ve 0. veya 1. durumdayken düstügünde tahmin alinmis oluyor. Bu etkileyici gelismeler, her BTB girisi için 16 sayaca sahip olan iki seviyeli dallanma tahmin uyum semasi tarafindan elde ediliyor. Son dört uygulama için tarihte dayandigi dallanma komutunun sahip oldugu 16 sayacindan birini seçer. Eger, örnegin dal komutu önce dallanir ve üç zamanda düserse böylece  biz 1000 bitlik tarihe sahip oluruz (1=dallanma, 0=dallanmama).

Iki seviyeli dallanma tahmin uyum semasi, 8 sayaç numarasini, bir sonraki zamani ve sondaki 8 sayaci yenilemeyi tahmin etmek için kullanacaktir. Eger 1000 dizisi her zaman tarafindan  takip edilirse ve 8 sayaç numarasi hep büyük durumda bulunursa böylece iki seviyeli dallanma tahmin uyum semasi her zaman 1000 dizisinin 1 tarafindan takip edildigini tahmin edecek. Iki seviyeli dallanma tahmin uyum semasi, bu kalip tahmininin degismesinde sapma kaydedecektir. Tekrarlanabilir kalip 100010001000’da 8sayaç 3. durumda ve 1., 2. ve 4. sayaç 0. durumda bulunacaklardir. Diger 12 sayaç kullanilmayacaktir.

8. KESIN OLARAK TAHMIN EDILEN KALIPLAR               Eger periyottaki her dört bitlik alt sira tek ise tekrar edici dallanma kalibi bu mekanizma tarafindan kesin olarak dogru tahmin edilir. Asagida dogru tahmin edilen tekrar edici dallanma kaliplari listelenmistir.

 period   Mükemmel olarak tahmin etme modeli
1-5   Tamami
6 000011, 000101, 000111, 001011
7 0000101, 0000111, 0001011
8 00001011, 00001111, 00010011, 00010111, 00101101
9 000010011, 000010111, 000100111, 000101101
10 0000100111, 0000101101, 0000101111, 0000110111, 0001010011, 0001011101
11 00001001111, 00001010011, 00001011101, 00010100111
12 000010100111, 000010111101, 000011010111, 000100110111, 000100111011
13 0000100110111, 0000100111011, 0000101001111
14 00001001101111, 00001001111011, 00010011010111, 00010011101011, 00010110011101, 00010110100111
15 000010011010111, 000010011101011, 000010100110111, 000010100111011, 000010110011101, 000010110100111, 000010111010011, 000011010010111
16 0000100110101111, 0000100111101011, 0000101100111101, 0000101101001111

Tablo 1: Mükemmel olarak tahmin etme modeli               Bu tabloyu okurken, eger bir kalip buna benzer baska bir kalip ters çevrildiginde dogru tahmin ediliyorsa diger kalip gibi ters çevrildiginde ayni bitler seklinde sonuç verir. Örnegin; tabloda 0001011 kalibini ele alalim. Bu kalibi ters çevirdigimizde 1101000 degerini elde ederiz. Tüm bitleri çevirdigimizde 1110100 kalibini elde ederiz. Her iki çevirim sonunda0010111 kalibini elde ederiz. Bu dört kalip fark edilebilecek sekildedir. Kalibi bir yerden sola kaydirarak 0010110 kalibini elde ederiz. Tabi ki bu yeni bir kalip degil, ayni kalibin degistirilmis bir versiyonudur. Tablodaki kaliptan ters çevrilerek  türetilmis kaliplarin hepsi fark edilebilir durumdadir.

BTB girisi için yer ayrilmasindan sonra kalip tanima mekanizmasinin düzenli bir tekrar edici kalibi ögrenmesi iki periyot halinde gerçeklesir. Ögrenme periyodundaki yanlis tahmin edilen kaliplar tekrar edilmez. Muhtemelen, bu BTB girisinin yerlesmesindeki öncelikten kaynaklanir. BTB girisleri rast gele bir semaya göre yerlestirildiklerinden dolayi bir önceki ögrenme periyodu sirasinda neler oldugunu tahmin etme sansi azdir.

9. DİNAMİK DALLANMA TAHMİNİ               Bir dallanma ilk kez yanlis tahmin edildiginde ve hesaba katildiginda, islemci bu dallanma sürecini BTB’de kaydeder. Dallanma komutu tekrar bulundugunda islemci BTB’deki dallanma sürecini bu komutun daha önce hesaba katilip katilmadigini dinamik bir sekilde tahmin etmek için kullanir. Dinamik dallanma tahmini IP’ yi erkenden güncellestirmek için kullanilir. Sonuç olarak, Popline’ a girmesi gereken komutlardan birkaçı popline girer.

Dinamik dallanma  tahmini mekanizmasi bir dallanma hedefini tahmin etmek için BTB’ deki dallanma sürecini baz alir. Bir dallanma hedefi, bir sonraki komut akisinin baslangicina yönelmektir. BTB’ deki her bir adres için, dallanma süreci diger dallanma formlarini 4 kez hafizada tutulur. Bu yüzden, kalibini 4 veya daha az kez tekrar eden herhangi bir dallanma  tahmin edilebilir niteliktedir.

    if (a == 5)

      a = 7;

  else

      a = 5;

Tahmin edilebilir mi?Edilir!

Çünkü, bu kod 2 iterationun içinde onun dallanmali kalibini tekrarlar.

Sebebi, BTB hatasiz tahmin yapabilmesidir.

       L1: lpcnt++;

if (lpcnt%4)==0)

printf

(“Dügüm hesabi 4 n  bölünebilir);

Tahmin edilebilir mi?Edilir!

Çünkü, bu kod 4 iterationun içinde onun dallanmalikalibini tekrarlar.

Sebebi, BTB hatasiz tahmin yapabilmesidir.

10 STATİK DALLANMA TAHMİNİ               Eger BTB’ de dallanma komutuyla ilgili bir bilgi yoksa, islemci çözme sirasinda statik bir algoritmik dallanma tahmin eder.

Bu algoritma sunlari tahmin eder;

Sartsiz dallanmaya götürmek

·      Gerideki sarta bagli tahmini dallanmaya götürür

·      Ilerideki sarta bagli tahmini dallanmaya götürmez

Statik dallanma tahmini Popline’ da dinamik dallanma tahmininden sonra gerçeklesir. Sonuç olarak, dallanmayi ele aldiginda islemi gerçeklestirmek için daha fazla geri dönüs yapar.

Dallanma yapisi meydana çikarildigi zaman, eger orada BTB tarihi yoksa, islemci dallanma yapisinda kullanmak için süreci alip almayacagina statik dallanma tahmin algoritmasini kullanir.

Statik dallanma sunlari tahmin eder;

Bir önceki durumdaki dallanmayi, tipik olarak küçük bölümlerde, bir sonraki durumdaki dallanmada hesaba katilmaz. Forma koyma islemi bir sonraki komuta göre olusur.

 

 

BEGIN :

   mov eax,mem32

   and eax,ebx

   imul eax,edx

   shl eax,7

   jc BEGIN  // branch !

Dallanmaya götürülür mü?

Götürülür! Çünkü statik dallanma tahmin algoritmasi

gerideki sarta bagli tahmini

dallanmaya GÖTÜRÜR.

  mov eax,mem32

   and eax,ebx

   imul eax,edx

   shl eax,7

   jc BEGIN  // branch !

   xor eax,eax

 BEGIN:

   add eax,4

Dallanmaya götürülür mü?

Götürülmez! Çünkü statik dallanma tahmin algoritmasi

ilerideki sarta bagli tahmini

dallanmaya GÖTÜRMEZ.

    mov eax,10

 LOOP:

    add list[4*eax],5

    dec eax

    jnz LOOP

Dallanmaya götürülür mü?

Götürülür! Çünkü statik dallanma tahmin algoritmasi

gerideki sarta bagli tahmini

dallanmaya GÖTÜRÜR.

    mov ecx,12

    cmp eax,7

    jne EAX _7  // branch !

    mov ecx,17

 EAX _7: . . .

Dallanmaya götürülür mü?

Götürülmez! Çünkü statik dallanma tahmin algoritmasi

ilerideki sarta bagli tahmini

dallanmaya GÖTÜRMEZ.

   add eax,7

   sub edx,ecx

   mov ecx, 17

   jmp ECX _17  // branch !

 ECX _12: . . .

   mov ecx,12

 ECX _17: . . .

Dallanmaya götürülür mü?

Götürülür! Çünkü statik dallanma tahmin algoritmasi

sarta bagli olmayan tahmini

dallanmaya GÖTÜRÜR.

   mov eax,mem32

   and eax,ebx

   imul eax,edx

   shl eax,7

   add eax,ecx

   call Convert // branch !

Dallanmaya götürülür mü?

Götürülür! Çünkü statik dallanma tahmin algoritmasi

sarta bagli olmayan tahmini

dallanmaya GÖTÜRÜR.

10.SONUÇ               Pentium ailesindeki ilk mikroislemci bir çok saçma acayiplikle basit seviyede bir dal tahmin mekanizmasini ortaya çikardi. Sonraki versiyonlari (Pentium MMX, Pentium Pro, Pentium II ve Pentium III) daha uzun Popline sahipti ve böylece etkili dal tahmini için daha yüksek ihtiyaç duyulmustur. Bu ihtiyaç, ögrenme yetenegine ve tekrarlanan kaliplari ve düzenli kaliplardan sapmalar bile tanima yetenegine sahip iki seviyeli mekanizma tarafindan karsilandi. Bu mekanizma dallanma sürecini 32 bitlik bir alanda kayit edebildigi için çip alani açisindan oldukça ekonomiktir.

Iki seviyeli dal tahminin en önemli eksigi onun bir bag kontrolünün dal kalibini tahmin etmede çok iyi olmasidir. Eger örnegin dallanma on defa tekrar eden bir baga sahip bir program varsa, bagin altindaki kontrol talimati dokuz defa geriye dallanacak ve bir yanlis tahmin degerinde on defa sonunda düsecek. Pentium Pro, Pentium II ve Pentium III için yanlış tahminin çok zaman kaybına sebep olduğu yerde, yanlış tahminlerden kaçınmak için 5 ve 2 kez uygulanan bağlarla on kez uygulanan bir bağı değiştirmek avantaj olabilir.

Aşağıdaki  tablo ve  grafiklerde  pentium  aileleri  arasındaki algoritmik yapılardan kaynaklanan  dallanma tahmini tutarlılıklarını görebilirsiniz:

 

 

Please follow and like us:
0

You may also like...

1 Response

  1. Fakhruddin dedi ki:

    mrb ben araşatırmacı karikaturst hasan cabanz ,,işte araştırma raporum,,14 haziran haberi gfcneş ısı kaybetme noktasında ,,belirli vakitlerde gfcneş ısısını ya dfcşfcrfcyor yada artırıyor ,,dfcnyadaki karbon dioksit oranı fazla olduğu ie7in biz tam olark yaşayamıyoruz soğumayı 2 faktf6r sıcak su akıntıların da farklı saptamalar var su sıcaklığı dfcşfcyor,,dfcnya kfcresel bir sogumaya gidiyor ve bunu fazlasıylada basında dile getirmiyorlar arkadaslar e7ok kuvvetli uzun sfcreli kışlar kapımızda meterolideki bazı tahmini raporlar e7okdan e7f6pe atıldı bile ekim kasım sıcak gecmesi bekleniyordu,,ve sonue7 bilemediler,,,isterseniz araşatırın,,benim tek korkduğum,,buzul haritasında bile akdeniz donuyor gfcneş bf6yle devam ederse karbon eninde sonuda gf6kyfcznden toprağa karışcak,,bu dfcnyanın belirli df6nemlerinde oldu f6rnek volkanlar df6nemi ve buzul cağı mini bir buzul cağı kapımızda,,kışlar şokla kuzey yarım kfcrede bize kendini gf6stercek en derin saygılarımla,,,

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir