Alpha 21264
Alpha 21264 1996 yılı Ekim ayında Digital Equipment Corporation tarafından indirgenmiş komut takımı bilgisayarı(RISC) mikroişlemcisi olarak tanıtılmıştır. 21264 Alfa işlemcisi Komut kümesi ile tanımlanmıştır.
Açıklama
[değiştir | kaynağı değiştir]Alpha 21264 sırasız yürütüm ve spekülatif yürütüm kullanan dört yollu superscalar bir mikroişlemcidir. Çevrim başına buyruk yürütümü dört olarak desteklenir bu oran uç noktada altıya ulaşabilir. Yedi aşamalı bir boru hattına sahiptir.
Sırasız Yürütüm
[değiştir | kaynağı değiştir]Diğer denk mikroişlemcilere oranla herhangi bir aşamada, 80 buyruğa kadar buyruk yürütümü yapabilmesi dolayısıyla bir üstünlük kurar.
Getirilen buyruklar buyruk kuyruklarında sıralanır ve işlenenleri uygun hale geldiğinde yayınlanır. Aritmetik kuyruğu 20, kayan nokta kuyruğu ise 15 girdi içerir. Her bir kuruk boru hatlarındaki buyruk kadar buyruk yayabilir.
Ebox
[değiştir | kaynağı değiştir]Ebox aritmetik,yükle ve sakla buyruklarını yürütür. İki aritmetik birim, iki yükle sakla birimi ve iki tam sayı yazmaç öbeği içerir. Her bir aritmetik yazmaç öbeği 31'i mimari yazmaçlar, 41'i yeniden adlandırma yazmaçları ve 8'i PALshadow yazmaçları olmak üzere 80 girdi içerir. R31 yazmacı için girdi yoktur çünkü, Alpha 21264 R31'i donanım üzerinde tanımlamıştır ve R31 yalnızca okuma erişimlidir.
Her bir yazmaç öbeği bir aritmetik birime, bir yükleme saklama birimine ve yazmaç öbeğinin "cluster" olarak tanımlanan iki birimine hizmet eder. İki cluster U0 ve U1'e işaret eder. Bu düzen işlenenleri alan ve sonuçlaı çıkartan okuma ve yazma portu sayısı ihtiyacını azaltmak için kullanılır. Bu yüzden yazmaç öbeğinin fiziksel boyutunu azaltmak mikroişlemci saat sıklığının artmasını sağlar. Herhangi bir yazmaç öbeğine senkronize yazma işlemi yapılır ve tamamlanmak için bir saat vuruşuna ihtiyaç duyar dolayısıyla başarımda yüzde bir gibi bir yanetkisi vardır. Senkronizasyon nedeniyle gerçekleşen başarım azalması iki yolla telafi edilir. İlki, yüksek saat sıklığının kaybı dengelemesidir. İkincisi senkronize ve bağımlı buyruklar yayınlamasından kaçınılmasıdır.
İki cluster, iki farklılıkları hariç birbirine benzer yapıdadırlar: U0 Motion Video Buyrukları (MVI) yürütümü için 3 çevrimlik bir boru hattına sahipken, U1 7 çevrimlik çarpan boru hattına sahiptir. Bu tek buyruk çoklu veri multimedya (SIMD) buyruklarını tanımlayan bir Alpha Mimarisi uzantısıdır.
Yükleme saklama birimleri sanal adreslerin bellek erişimini hesaplamak için kullanılan basit aritmetik mantık birimleridir. Aynı zamanda basit aritmetik ve mantık buyruklarını yürütebilirler. Alpha 21264 buyruk yayma mantığı bunu kullanır ve buyruklar kullanıma uygun olduğunda bu birimlere yayar.
E-box dolayısıyla U0 ve U1 arasında eşit olarak bölünmüş dört 64-bit toplayıcı, dört mantık birimi, 2 kaydırıcı(barrel shifter), bayt-manipule mantığı, 2 durumsal dallanma mantık kümesine sahiptir.
Fbox
[değiştir | kaynağı değiştir]Fbox kayan nokta buyruklarını yürütmekle yükümlüdür. İki kayan nokta boru hattı ve bir kayan nokta yazmaç öbeği vardır. Boru hatları özdeş değildir. Biri yalnızca çarpma buyruklarını yürütürken diğeri epeyce fazla buyruk yürütür. Toplayıcı boru hattı kendisine bağşı iki boru hatlanmamış birim içerir. Bunlardan biri bölme birimi diğeri karekök birimidir. Toplamalar, çarpmalar ve diğer çoğu buyruk 4 çevrimlik gecikmeye sahiptir. Çift hassasiyetli bir bölme 16 çevrimlik gecikme ve çift hassaslı bir karekök işlemi 33 çevrimlik gecikmeye neden olur. Kayan nokta yazmaç öbeği 32'si mimari yazmaçlar ve 40'ı yeniden adlandırma yazmaçları olmak üzere toplam 72 girdiye sahiptir.
Önbellek
[değiştir | kaynağı değiştir]Alpha 21264 birincil ve ikincil seviyeden oluşan iki seviyeli bir önbelleğe sahiptir. Alpha 21164'ün üçüncü seviye önbelleği bant genişliği sorunlarından ötürü kullanılmamıştır.
Birincil Önbellekler
[değiştir | kaynağı değiştir]Birincil önbellek buyruklar ve veri için ayrı önbelleğe ayrılmıştır; I-cache ve D-cache. Her iki önbellekte 64 KB kapasiteye sahiptir. D-cache veriyi saat vuruşunun hem çıkışında hem de inişinde taşıyan çift portludur. Bu çift port yöntemi her bir işlemci çevriminde önbelleğe hem okuma hem de yazma olanağı sağlamıştır. Bu aynı zamanda Alpha 21164'de olan iki kere önbellek çoğaltılmasını önlmektedir. Önbellek çoğaltılması aynı oranda kapasite gerektiren bir önbellek için daha fazla transistör ihtiyacı duyarak önbellek kapasitesini kısıtlamaktadır.
B-cache
[değiştir | kaynağı değiştir]B-cache olarak nitelendirilen ikincil önbellek, 1 ila 16 MB arası kapasitesi olan harici bir önbellektir. Mikroişlemci tarafından kontrol edilir ve senkron SRAM çipleri ile tanımlanmıştır. B-cache'e SSRAM ile aynı saat sıklığına sahip 128-bit'lik yolla erişilir ya da eğer çift veri oranı SSRAM kuallanılırsa saat sıklığının iki katında. B-cache doğrudan ilişkilidir.
Branch prediction
[değiştir | kaynağı değiştir]Dallanma öngörüsü, turnuva dallanma öngörüsü algoritmasıyla sağlanır. Algoritma Scott McFarling tarafından Digital'in Western Araştırma Laboratuvarı'nda geliştirildi ve 1993 yılında bir makaleyle tanıtıldı. Öngörücü Alpha 21264'te kullanıldı ve bulamama cezasını 7 çevrime kadar düşürdü. Buyruk önbelleğinin iki çevrimlik gecikmesi ve buyruk kuyruklarıda göze alındığında ortalama bulamama cezası 11 çevrimdir. Algoritma yerel ve küresel olmak üzere iki geçmiş tablosuna dayanır ve dallanmanın çıktısını öngörecek tablo seçim öngörücü tarafından seçilir.
Yerel öngörücü, her bir dallanmanın geçmişini tutan iki seviyeli bir tablodur. 10-bit'lik dallanma geçmiş tablosuyla 1024 girdi tutar. İki seviyeli tablo kullanımının doğruluk öngörüsü daha az bit haznesi ihtiyahcı olmakla birlikte daha büyük bir tek seviyeli tabloyla eştir. 1024 girdili bir geçmiş tablosu vardır. Her bir girdi 3-bit'lik sayaçtır. Sayacın değeri anlık dallanmanın alınıp alınmadığına karar verir.
Seçim öngörücü hangi öngörücünün dallanma için daha iyi olduğunu belirlemek için yerel ve küresel öngörücülerin geçmişini tutar. 4096 girdili bir geçmiş tablosu vardır. Her bir girdi 2-bit'lik sayaçtır. Sayacın değeri yerel veya küresel öngörücünün kullanılıp kullanılmadığına karar verir.
Harici Arayüz
[değiştir | kaynağı değiştir]Harici arayüz iki yönlü 64-bit DDR veri yolu ve 2 adet 15-bit her yöne zaman çoklu biri Alpha 21264'ten gelen diğeri sistemden gelen olmak üzere adres yolu ve kontrol yolu içerir.
Üretim
[değiştir | kaynağı değiştir]Alpha 21264 15.2 milyon transistör içerir. Mantık 6 milyon civarı transistör içerirken geri kalanı önbellek ve dallanma geçmiş tabloları tarafından kullanılır. Katman 16.7 mm'ye 18.8 mm (313.96 mm²)'dir. 21264, 0.35 µm CMOS yöntemiyle birbirine bağlı altı seviyede üretilmiştir.
Paket
[değiştir | kaynağı değiştir]Alpha 21264 587-pin IPGA ile paketlenmiştir.
Alpha Processor, Inc.daha sonraları Alpha 21264'ü B-cache içeren ve voltaj regülatörleri bulunan bir mikroişlemci olarak, Slot B paketi adıyla satmıştır. Bu tasarım Intel, AMD gibi slot tabanlı diğer mikroişlemcilerin başarısını kullanma amaçlı yapılmıştır. Slot B özünde AMD'nin Athlon'unda kullanılmak için de geliştirilmiştir.