KASIRGA 4. GELİŞME RAPORU 14.07.2008 Ankara
İçindekiler İçindekiler... 2 Giriş... 3 Kasırga Birimleri... 3 Program Sayacı Birimi... 3 Bellek Birimi... 3 Yönlendirme Birimi... 4 Denetim Birimi... 4 İşlem Birimi... 4 Kaydırma Birimi... 4 Çarpma Birimi... 4 Dallanma Birimi... 5 Diğer Birimler... 5 Kasırga Çevre Birimleri... 5 Rs 232 Denetleyicisi... 5 VGA Denetleyicisi... 6 PS/2 Denetleyicisi... 6 Sonuç... 6
Giriş Cpu Turkey yarışması 2. Aşaması olan Fiziksel İşlemci tasarımı için Kasırga nın son sürümü gerçeklenmiştir. Kasırga 1 ve Kasırga 2 işlemcilerinden sonra, Kasırga nın son sürümü olan Kasırga 3 işlemcisi yarışmanın Fiziksel tasarım dalına yetiştirilmiştir. Kasırga 3, 16 bitlik bir RISC işlemcidir. Buyruk yarışma için verilen temel buyruklarla birlikte eklenen in, out, bgt ve blt buyruklarından oluşur. Kasırga 1 ile tasarlanan bu buyruk kümesi tüm Kasırga işlemcilerinde temel alınmış ve gerçeklenmiştir. Kasırga 3 te fiziksel olarak temel özellik, daha önce davranışsal model olarak yazılmış olan Kasırga 1 ve 2 yerine modüller halinde tasarlanmış olmasıdır. Bu şekilde herhangi bir birimde daha kolay iyileştirme yapılabilecektir. Kasırga Birimleri Kasırga 3 işlemcisinin özelliği modüler olmasıdır. 4 Aşamalı (Getir Çöz- Yürüt - Yaz) Kasırga boru hattı gerçeklenmiştir. Boru hattı sorunları olan yönlendirme ve dallanma sorunları ise bu sorunlar için özelleşmiş birimler ile çözülmektedir. Boru hattı dolduğunda her buyruk tek bir vuruşta işlenmektedir, ancak yükleme (lw) buyruğunda bellek gecikmesi nedeniyle bir vuruş beklenmektedir. Yine dallanma buyruklarında tahmin sonucu yanlış olduğu durumlarda 1 vuruş beklenir. Program Sayacı Birimi Program sayacı birimi giriş olarak mevcut program sayacı değerini ve anlık değeri alır. Çıkış olarak yeni program sayacını verir. Yeni program sayacı değeri işlenen buyruğun türüne göre PS + 1 PS 1 PS Anlık Değer Olabilir. Normal buyruklarda değer 1 artırılırken, yükleme buyruklarında senkronizasyon sağlanması için program sayacı değeri sabit bırakılır, durdurma buyruğunda PS - 1 ile tekrar durdurma buyruğunun çekilmesi ve işlemcinin durdurlması sağlanır. Koşulsuz dallanma (bl, ba) buyruklarında ise anlık değer program sayacı olarak verilir. Program sayacı işlemcinin yürütüme başladığı noktadır. Bellek Birimi Belleğin veri genişliği 16 bittir ve 12 bitle adreslenmektedir. İki kapılı belleğin A kapısından buyruk alış verişi, B kapısından ise veri alış verişi yapılmaktadır. Bu şekilde buyruk ve veri alış verişi sırasında çakışma olması önlenmiş olur. Bellek birimi 16 bit ile adreslendiğinde kullanılan block memory karta sığmadığı için adresleme boyutu 12 bit ile sınırlanmıştır. Kasırga belleği 16
bit ile adresleyecek durumdadır. Bellek oluşturulması için Xilinx Core Generator kullanılmaktadır. Yönlendirme Birimi Boru hattının dolayısıyla işlemcinin temel sorunlarından olan verilerin bağımlılığı sorunları yönlendirme ile çözülmektedir. Değerler yazılmadan onlara ihtiyaç duyan buyruklara gerekli değerler çoklayıcılardan seçilerek gönderilir. 2. ve 3. aşamalarda bulunan bu çoklayıcılar yönlendirme birimi tarafından kontrol edilir. Birime giriş olarak işlenmekte olan buyruk kendinden önceki buyrukların yazmaçlara yazıp yazmadığına bakarak değerin yazmaç öbeği girişlerinden mi ya da AMB vb. işlem birimlerinin çıkışlarından mı alınacağına karar verir. Bu sırada önceki buyrukların çarpma olup olmaması da üst yazmacına değer yazılmış olacağından farklılık göstermektedir. Denetim biriminden, önceki iki buyruğun çarpma olup olmadığına dair sinyaller yönlendirme birimine girmektedir. Denetim Birimi Denetim birimi tüm işlemciye hangi anda nasıl çalışacağını bildiren sinyallerin gönderildiği yerdir. Denetim birimi bu yönüyle işlemcinin çalışmasını sağlamaktadır. Denetim birimine bellekten çekilen buyruğun ilk 7 biti giriş olarak verilir. Bir de dallanma biriminden gelen dallanma tahmininin doğruluğunu bildiren bit giriş olarak verilir. Çıkış olarak ise o buyruğun her bir aşaması için gereken denetim değerleri dizisi verilir. Denetim dizisinin ilk biti o aşamanın değerlerinin anlamlı olup olmadığını da bildirir. Yanlış tahmin durumlarında boru hattı boşaltılırken anlamsız aşamlarda değerler değiştirilmez. Bunu sağlamak için denetim dizisi ilk bitine bakılır. İşlem Birimi İşlem birimi toplama, çıkarma, ve, veya, özel veya işlemlerinin bunların yanısıra karşılaştırma işlemini gerçekleştirmektedir. İşlem biriminden çıkan değerler sıfır, büyüktür ve küçüktür bayraklarını etkilemektedirler. Kaydırma Birimi A girişinden verilen değeri B girişinden verilen değeri son 4 biti ile kaydıran birimdir. Kaydırma işlemi sağ/sol yönlerinde ve aritmetik veya mantıksal kaydırma olabilir. Tüm bunları bildiren denetim değerleri kaydırma birimine girmektedir. Kaydırma birimi çıkışı 16 bitlik sonuçtur. Çarpma Birimi A ve B girişinden giren 16 bitlik sayıları işaretli ya da işaretsiz çarparak alt ve üst olarak 16 bitlik iki çıkıştan veren birimdir.
Dallanma Birimi Kasırga 3 te yapılan bir iyileştirme de dallanma tahminidir. Sabit tahmin yapılarak programın hiçbir zaman dallanmayacağı öngörülmüştür. Buna göre program sayacı değiştirildikten sonra 3. aşamada bulunan dallanma biriminde tahminin doğruluğunun kontrolüyle birlikte programa aynen devam edilir ya da yanlış çekilmiş olan buyruk anlamsız kabul edilip boru hattından çıkarılır. Dallanma birimine giriş olarak dallanma buyruğunun program sayacı ve bayraklar alınır. Çıkış ise yeni program sayacı değeri ve tahminin doğruluğunu bildiren sinyaldir. Ayrıca tahmin doğruluğu sinyali ile belleğin girişindeki çoklayıcı kontrol edilerek doğru program sayacı değeri verilmesi sağlanır. Diğer Birimler Kasırga da bu ana birimler haricinde 2 tane 11 bitlik anlık değeri 16 bite çıkaracak genişetici ve 1 adet değişik büyüklüklerde çoklayıcı kullanılmıştır. Bunların yanısıra aşamalar arasındaki değerleri tutan değişik boyutlarda yazmaçlar kullanılmıştır. Kasırga Çevre Birimleri Kasırga çevre birimleri rs 232 denetleyicisi, VGA (monitör) denetleyicisi ve PS/2(klavye) denetleyicisinden oluşmaktadır. Rs 232 Denetleyicisi Rs 232 seri bir iletişim şeklidir. Kasırga da seri port denetleyicisinin görevi buyrukların belleğe yazılması ve programın başlatılmasını sağlamaktır. Bu nedenle büzenleyici birime girenler
program yükleme çalıştırma modu anahtar değeri ve portu dinleyici modülden gelen 8 bitlik verilerdir. Kart bellekte yazılacak adresi ve yazılacak buyruğu çıkış olarak vermektedir. VGA Denetleyicisi Kart ile monitor VGA portu üzerinden haberleşmektedirler. Kasırga da VGA modülü girişine gelen 8 bitlik değerleri karakter rom undan okuduğu değere göre ascii olarak ekrana basar. Bu şekilde metinler harf harf ekrana girilerek oluşturulabilir. PS/2 Denetleyicisi Kasırga da bulunan in buyruğunun kullanım anlam bulması açısından önemli bir birimdir. Kalvyeden gelen değerler denetleyici yardımıyla okunarak in buyruğu ile birlikte birikece yazılır. Ancak klavyede 17 Khz olan klavye hızı 50 Mhz lik saate bağlanmış olan Kasırga üzerinde çalışıtırıldığında tuşa basılınca gelen tek veriyi birçok kez okumaktadır. Bu da ekranda görmeyi zorlaştırmaktadır. Sonuç Projenin fiziksel tasarım aşamasında her yeni atılan adım beraberinde farklı ve güzel fikirleri de beraberinde getirdi. Bu şekilde Kasırg 3 ile yarışmaya teslim edilen tasarım da daha önemli bir noktaya geldi. Komut kümesinin yenilenmesi, yazmaç sayısının değiştirilmesi vb. iyileştirme ve yenilikler işlemci üzerinde yapılırken, klavye ve monitör düzenleyicileri ile birlikte sistem bilgisayara daha yakın bir hale gelmiştir. Sonuçta Kasırga nın temellerinin atıldığı bu projede daha fazla zaman olduğunda çok farklı işler ortaya çıkarılacağı muhakkaktır.