PowerPC 620 Mimarisi 704061024 Vijdan KIZILAY 1 İçerik Giriş İşhatlı Yapısı Yürütme Birimleri Bellek Hiyerarşisi Sonuç 2 Giriş PowerPC 1991’de Apple,IBM ve Motorola firmaları tarafından meydana getirilmiş bir RISC mikroişlemcisidir. 4 farklı gerçekleştirimi vardır. İlk olarak 601,603 ve 604 mikroişlemcileri geliştirilmiştir. 64-bit PowerPC 620 ilk gerçeklemelerin 4.südür.Uygulama sunucularında ve teknik iş istasyonlarında kullanılmak amaçlı geliştirilmiştir. 3 Giriş 620’nin birincil tasarım amacı yüksek performanstır. İşlemcinin performansını belirleyen 3 faktör vardır bunlar: Bir görevdeki komut sayısı İşlemcinin 1 sa çevriminde çalıştırdığı ortalama komut sayısı İşlemcinin frekansı Birinci faktör 620’de sıkıştırılmış kod üretilerek karşılanmaktadır. 2. ve 3. faktörler IPC ve saat frekansının çarpımı büyütülerek karşılanmaktadır. Yürütülen komut sonucunu hızlandırmak için dinamik dallanma öngörüleri, rezervasyon istasyonları,yazmaç yeniden adlandırma ve tahmini yürütme gibi yöntemler kullanılmaktadır. 4 5 İşhatlı Yapısı 620 mikroişlemcisi 5 katlı komut işhatlısını gerçeklemektedir. Bu 5 kat komut alma, dağıtma,yürütme,tamamlama ve geri yazma katlarıdır. Komutlar program sırasına göre yürütme birimlerine gönderilmekte,sırasız yürütülürler ve sırayla tamamlanırlar. 6 İşhatlı Yapısı Komut Alma Katı Komut önbelleğine dallanma biriminden gelen adrese göre erişilir. Önbellekten 1 sa çevriminde 4 komut dönmektedir. Komutlar 8 girişli FIFO tampon belleğe yüklenmektedir. Önbellekte herbir komutla ilişkili 7 tane ön kod çözme biti bulunur. Bu bitler komut için gerekli işlenenleri ve komutun hangi yürütme biriminde yürütüleceği gibi bilgileri sağlar. Önkod çözme bitleri sayesinde işhatlıda ayrı bir kod çözme katına gerek duyulmaz. 7 İşhatlı Yapısı Dağıtma Katı 1 çevrimde 4 komutu çözer ve uygun yürütme birimlerindeki rezervasyon istasyonlarına gönderir. Her komut için komut bağımlılıkları belirlenir ve kaynak işlenenleri yazmaç dosyalarından okumak için çalışma yapılır. Dağıtma katı kısıtları: 1) Komutlar program sırasına göre dağıtılmak zorundadır. 2) Uygun tipteki yürütme biriminde dağıtılan komutları tutan rezervasyon istasyonları erişilebilir olmalıdır. 3) 2 genel amaçlı yazmaç işlenine ihtiyacı olan komutlar dağıtma tamponunun sadece ilk 2 girişinden gönderilebilirler. 8 İşhatlı Yapısı Yürütme Katı Bu katta herbir yürütme birimi rezervasyon istasyonlarında en eski hazır komutları yürütürler.Yürütme katı sonunda komut sonucu uygun addeğiştirme tampon yoluna sürülür. 620’ nin en önemli özelliklerinden biri komutları yorumlayarak yürütmesi: Yorumlayarak yürütme,dallanmaları tahmin ederek ortaya çıkan paralelliğin kullanılması açısından gerekli Önceden yorumlanarak yürütülen komutların sonuçları addeğiştirme,yeniden sıralama tamponlarında tutulur.Ancak hata durumunda tamponlar temizlenebilir. 9 İşhatlı Yapısı Tamamlama Katı Komutların sırasını tutmak için 16 girişli yeniden sıralama tamponu Komut çalışmasını bitirdiği zaman durumu atanmış olduğu tampon girişine kaydedilir. Tamamlama birimi komutların program sırasında tamamlandığını garanti eder. Tamamlama birimi hata yakalandığında veya yanlış dallanma tahmini olduğunda hatanın çıktığı noktaya kadar varolan komutların tamamlanmasına izin verir. Yanlış dallanma tahmini durumunda dağıtma ve yürütme birimleri uygun komut dizisiyle dallanmadan önceki haline döner. 10 İşhatlı Yapısı Geri Yazma Katı Bir komut tamamlandıktan sonraki saat çevriminde sonuçlar addeğiştirme tamponlarından ilgili birimlere yazılır. 1 sa çevriminde 4 GPR, 2 FPR ve 4 CR yazma yapılabilir. 11 Yürütme Birimleri Dallanma Birimi 2 temel fonksiyonu vardır: 1. Önceden dallanma tahmini yapar. 2. Önceki dallanmaların doğru olup olmadığını anlamak için dallanma komutlarını çözer. Branch Target Address Cache: Yapılan dallanmadan sonraki işhattı beklemelerini azaltmak için kullanılır. Dallanma birimi alınan komutun kodunu beklenen kaynak işlenenlerden dolayı çözemezse dallanma tahmini BHT,Link Register Stack,Shadow Count Register’daki bilgiye göre yapılır. 12 Yürütme Birimleri BTAC(Branch Target Adress Cache): Komut önbelleğine paralel olarak erişilir. Eğer komut adresi BTAC’ta bulunursa alınan hedef adres bir sonraki sa çevriminde sıradaki komutları almak için kullanılır. Eğer adres BTAC’ ta yoksa komut alma birimi programın normal şekilde aktığını varsayar. Branch History Table: Durumu koşul yazmacındaki(CR) bite bağlı olan dağıtma tamponundaki dallanma komutlarının tahminini yapmak için kullanılır.Bu mekanizma devredışı bırakılırsa statik dallanma tahminleri kullanılır. Link Register Stack:Fonksiyon çağrılarını hızlandırmak amaçlı gerçeklenir. Link biti birlenmiş dallanma komutları fonksiyon çağrıları için kullanılır.Bu komutlar dönüş adresini Link yazmacına kaydederler. 13 Yürütme Birimleri Gölge sayı yazmacı(Shadow Count Register): Dağıtma tamponundaki bir koşullu dallanma komutu için,dallanma tahminin sayı yazmacındaki değere göre yapılır.Eğer tahmin o andaki önceden komut alma yönünden farklı ise önceden almanın yönü değiştirilir. Dallanma Çözme:Bir çevrimde koşul kodu üretilmiş olan en eski dallanma komutu çözülür. Koşul kodu dallanma tahmini ile uymazsa yanlış tahmin sinyali yollanır ve bir sonraki sa çevriminde doğru komutların alımı için komut alma adres hesaplaması yapılır. 14 Yürütme Birimleri Tamsayı Yürütme Birimleri PowerPC 620 mikroişlemcisinde 3 tane tamsayı yürütme birimi bulunmaktadır. Bu birimler 32 ve 64 bit tamsayı komutlarını gerçeklemektedir. Her birimde 2 tane sırasız yayma rezervasyon istasyonu vardır. Rezervasyon istasyonları komutların kaynak işlenenleri hazır olmadan dağıtma katından dağıtımının yapılmasına izin verir. Komutun hazır olmayan işlenenleri daha sonra oluşturuldukları yürütme biriminden gerekli birime yönlendirilirler. 15 Yürütme Birimleri Yükleme ve Geri Yükleme (Load/Store) Birimi Load/Store birimi 3 tane sırasız yayma rezervasyon istasyonu ve 2 katlı bir işhatlıya sahiptir. İşhatlının birinci katında bellek işlenenlerinin etkin adresi hesaplanır. Veriyi cepte bulan bir load komutu için veri addeğiştirme tamponlarına veya yürütme birimlerine gönderilir.Iska durumunda erişilen adres load miss register’a yazılır. İlgili veri için yol isteği oluşturulur. Başarılı Store işlemleri için herbir store FSQ(Finished Store Queue)’ya eklenir. Store işlemi bittikten sonra yazmaç dosyasından alınan veri ile CSQ’ya yazılır. Store ıskası olursa program sırasını bozmamak için CSQ’daki belleğe yazmalar bekletilir. 16 Yürütme Birimleri Kayan-noktalı Yürütme Birimi Kayan-noktalı yürütme birimi iki adet sıralı yayma rezervasyon istasyonu tarafından beslenmektedir.Rezervasyon istasyonları her saat çevriminde komut dağıtma biriminden bir komut almaktadır.Kayannoktalı komutların yürütülmesi bittikten sonra,sonuçları 8 adet addeğiştirme tamponu yollarından birine sürülür . 3 katlı kayan-noktalı yürütme birimi her 18 sa çevriminde bir bölme sonucu üretebilir. Herbir 22 sa çevriminde de bir karekök komutu yürütülebilir. 17 Bellek Hiyerarşisi Yüksek hızlı süperskalar işlemcilerin performansı için verimli bellek işlemleri çok önemlidir. Bellek Yönetim Birimleri 2 seviyeli bellek yönetimi gerçeklenmektedir. 1. seviye bellek yönetim birimi komut ve veri aktarımları için 64 girişli tam çağrışımsal etkin adresten fiziksel adrese çevirme tamponlarını kullanır. 2. seviye bellek yönetim birimi 20 girişli tam çağrışımsal bölüm dönüşüm tamponu ve 128 girişli 2 yollu çağrışımsal kestirme dönüşüm tamponu içerir. Tampon belleklerin yönetimi ve bellekteki bölüm/sayfa tablolarından tamponların yüklenmesi tamamen donanımsal olarak yapılır. 18 Bellek Hiyerarşisi L2 Önbellek Arabirimi 620’de yonga üzeri bir L2 denetleyicisine sahiptir. Denetleyici ikincil cebe hızlı erişim sağlar. Denetleyici yol trafiğini azaltır. Çünkü yol isteği sadece L2’de ıska olduğu zaman yapılır. L2 veri cebi arabirimi 128 bitliktir. 1 MB’tan 128 MB’a kadar FSRAM’leri destekler. L2 arabirimi yazılım tarafından devredışı bırakılabilir. 19 Bellek Hiyerarşisi Önbellekler PowerPC 620 mikroişlemcisi ayrı veri ve komut cebine sahip Cep kapasiteleri 32 KB, cep satırları 64 bayttır. Cepler 8 yollu “semi-associative” dir. Geleneksel 8 yollu çağrışımsal cepte küme seçilir ve 8 giriş okunur. Bu işlem hız ve güç tüketimine neden olur. 620 cepleri adres bitlerinden 52-57 arasındakileri 64 camletten(content addressable memory) birini seçmek için kullanılır. Herbir camlet 8 cep girişi içerir.Geri kalan adres bitleri verinin camlette olup olmadığını bulmak için kullanılır. Bu mimari 8 yollu geleneksel çağrışımsal cep etkinliğini sağlarken, geleneksel doğrudan cep hız ve güç avantajınıda sağlamaktadır. 20 Bellek Hiyerarşisi Veri cebi MESI protokolu altında tutarlı tutulmaktadır. Mesi protokolüne göre cepteki herbir satır M,E,S veya I olmak üzere 4 durumdan biri ile işaretlidir. M(Modified) : Cep satırındaki verinin sadece o cepte olduğunu ve bellekteki değerinden farklı olduğunu gösterir. E(Exclusive) : Cep satırındaki verinin sadece o cepte olduğunu ve bellekteki değeri ile aynı olduğunu göstermektedir. S(Shared): Cepteki verinin makinenin diğer ceplerinde de olabileceğini gösterir. I(Invalid): Cepteki verinin geçersiz olduğunu gösterir. Komut cebi tutarlılığı yazılımla sağlanır. PowerPC mimarisi komut cebi tutarlılığını yazılımla sağlamak için bir dizi komut sağlar. 21 Bellek Hiyerarşisi Sistem Yolu Sistem yolu adres ve veri yolu olmak üzere ikiye ayrılır. Bu organizasyon veri ve adres yolunun aynı yol olduğu sistemlere göre daha çok pin içersede,sadece adres yolu maksimum adres yolu bant genişliğini sunmaktadır. Adresler 40 bitliktir. Veri yolu herbir yol çevriminde 16 baytlık veri döndürebilir.Veri yolu sahibi değiştiği zaman yol çatışmasını önlemek için bir ölü çevrime gerek duyulur. Herbir yol kendi kontrolüne ve eşlik korunumuna sahiptir. 22 Sonuç PowerPC 620 RISC mikroişlemcisi yüksek performanslı mikromimarisi, entegre L2 cep denetçisiyle, yüksek bant genişliği ile uygulama sunucuları ve teknik iş istasyonları için ideal bir çözüm sağlamaktadır. 620 mikroişlemcisi performans güdümlü uygulamalar için tasarlanmıştır.Dolayısıyla işlemcinin performans ölçeklenirliği ve donanım konfigürasyonu multimedya sistemlerin tasarımında büyük esneklik sağlamaktadır. 23 Referanslar David Levitan,Thomas Thomas,Paul Tu, The PowerPC 620 Microprocessors Trung A. Diep, Christopher Nelson, John Paul Shen,Performance Evaluation of the PowerPC 620 Microarchitecture John K. Yuan, Michael P. Taborn, David C. Lee,Albert Tsay, The PowerPC 620 Microprocessor in Distributed Computing A High Performance Bus and Cache Controller for PowerPc Multiprocessing Systems,Michael S. Allen,W. Kurt Lewchuk and John D. Coddington http://studies.ac.upc.edu/ETSETB/SEGPAR/microprocessors/ppc620%20( mpr).pdf http://www.byte.com/art/9411/sec8/art5.htm http://tr.wikipedia.org/wiki/PowerPC 24