Alpha 21064

Alpha 21064, Digital Equipment Corporation tarafından geliştirilen ve Alpha (ortaya çıktığı sırada Alpha AXP) buyruk kümesi mimarisini (ISA) gerçekleyen bir mikroişlemcidir. 1994'te adı değiştirilmeden önce DECchip 21064 olarak biliniyordu. EV4 kod adıyla da anılır. Şubat 1992'de tanıtıldı, aynı yılın eylül ayında seri üretime geçti. 21064, Alpha ISA'nın ilk ticari gerçeklemesidir.

Tarihçe
21064, Şubat 1992 ortasında 39. ISSCC'de (International Solid-State Circuits Conference) tanıtıldı. 25 Şubat 1992'de duyuruldu ve 150 MHz'lik bir örneği aynı gün sunuldu. Örnek fiyatı 3.375 dolar, 100 adetten fazla siparişlerde 1.650 dolar, 1.000 adetten fazla siparişlerde 1.559 dolardı. Duyuru sırasında seri sevkiyatın temmuz ayında başlaması planlanıyordu. Seri üretim Eylül 1992'de başladı.

Digital, Eylül 1993'te kişisel bilgisayarlar için daha düşük maliyetli 21066'yı tanıttı. 166 MHz'lik bu çipin fiyatı 5.000 adetlik siparişlerde 385 dolardı. Aynı dönemde Digital, 21064'ün daha hızlı bir sürümünü yıl bitmeden çıkarmayı ve çift önbelleğin her birini 16 KB'ye yükseltmeyi planladığını açıkladı.

Haziran 1994'te Digital, Alpha yongalarının fiyatlarını 3 Temmuz'dan geçerli olmak üzere indirdi. İndirim sonrasında fiyatlar, 66 MHz'lik 21068 için 186 dolar ile 275 MHz'lik 21064A için 1.083 dolar arasında değişiyordu.

Başarım
21064, duyurulduğu sırada o güne kadar duyurulmuş en hızlı mikroişlemciydi. Kişisel bilgisayar üreticilerine Alpha'yı benimsetme çabası sürerken 21064 tabanlı ilk masaüstü sistemlerden birini Carrera Computers sevk etti.

Açıklama
21064, buyrukları program sırasına göre yürüten, süper boru hatlı, çift yürütümlü superscalar bir mikroişlemcidir. Her saat çevriminde iki buyruğa kadar yürütümü şu dört işlevsel birimde gerçekleştirebilir: aritmetik mantık birimi, kayan nokta birimi, adres birimi, dallanma birimi. Tam sayı boru hattı yedi, kayan nokta boru hattı on aşamalıdır. İki boru hattının da ilk dört aşaması aynıdır ve I-box tarafından gerçekleştirilir.

I-box
I-box, boru hattını denetleyen birimdir. Buyrukları getirir, çözer ve yürütüme gönderir. İlk aşamada buyruk önbelleğinden iki buyruk getirilir. İkinci aşamada I-box dallanma tahmini yapar. Hem duruk hem devingen tahmin kullanılır. Duruk tahmin, dallanma buyruğunun yer değiştirme alanındaki işaret bitini denetler. Bit 1'se dallanıldığı tahmin edilir. Devingen tahmin, 1 bitlik dallanma tahmin tablosundaki 2.048 girdiyi kullanır. Girdi 1 içeriyorsa dallanıldığı tahmin edilir. Devingen tahmin kullanıldığında çoğu program için dallanma tahmini yüzde 80 doğrudur. Yanlış tahmin dört çevrime mal olur.

Buyruklar üçüncü aşamada çözülür. Ardından I-box, dördüncü aşamada bu iki buyruğun gereksinim duyduğu kaynakların uygunluğunu denetler. Uygunsa buyruklar birlikte yürütülür. Hangi buyrukların eşlenebileceğini, tam sayı kayıt dosyasındaki okuma ve yazma portlarının sayısı belirler. 21064 bir aritmetik işlemle bir kayan nokta işlemini, herhangi bir yükleme/saklama buyruğuyla herhangi bir işlem buyruğunu, bir aritmetik işlemle aritmetik dallanmayı veya bir kayan nokta işlemiyle kayan nokta dallanmasını birlikte yürütebilir. İki birleşime izin verilmez: bir aritmetik işlemle kayan nokta yüklemesi ve bir kayan nokta işlemiyle aritmetik yükleme. İki buyruk birlikte yürütülemiyorsa, kalan buyruk yürütülene kadar ilk dört aşama bu buyruklar için ertelenir. Kaynak yetersizliği ve bağımlılık gibi durumlarda da ilk dört aşama ertelenebilir.

I-box, sanal adresleri gerçek adreslere dönüştürmek için bir buyruk dönüştürme önbelleği (ITB) içerir. ITB'nin 12 girdisinden sekizi 8 KB, dördü 4 MB sayfaları eşler. Önbellek tam ilişkilidir ve en az kullanılanı atma algoritmasını kullanır.

Yürütme
Yürütme, bütün buyruklar için beşinci aşamada başlar. Kayıt dosyaları dördüncü aşamada okunur. Beşinci aşamadan başlayan boru hattı durdurulamaz.

Aritmetik mantık birimi
Aritmetik mantık birimi (AMB) aritmetik buyruklarını yürütür. AMB, tam sayı kayıt dosyası ve E-box'tan oluşur. Kayıt dosyası otuz iki adet 64 bitlik yazmaç, dört okuma portu ve AMB ile dallanma birimi arasında eşit bölüşülen iki yazma portu içerir. E-box bir toplayıcı, bir mantık birimi, bir çevrimsel kaydırıcı ve bir çarpıcı içerir. Çarpma, kaydırma ve bayt işleme buyrukları dışında çoğu aritmetik buyruk beşinci aşamanın sonunda tamamlanır, yani gecikmesi bir çevrimdir. Çevrimsel kaydırıcı boru hatlıdır, ancak kaydırma ve bayt işleme buyrukları altıncı aşamanın sonunda tamamlandığı için gecikmeleri iki çevrimdir. Çarpıcı alandan kazanmak amacıyla boru hatlanmamıştır, bu nedenle çarpma buyrukları işleme göre değişen 19 ila 23 çevrimlik gecikmeye yol açar.

Adres birimi
A-box olarak da bilinen adres birimi, yükleme ve saklama buyruklarını yürütür. Adres birimi ile AMB'nin birlikte çalışabilmesi için adres birimi, AMB'nin toplayıcısını kullanmak yerine sanal adresleri hesaplamada kendi toplayıcısını kullanır. Sanal adresleri gerçek adreslere dönüştürmek için 32 girdili, tam ilişkili bir veri dönüştürme önbelleği (DTB) kullanılır. Bu önbellek 8 KB, 64 KB, 512 KB ve 4 MB sayfaları eşleyebilir. 21064, 43 bitlik sanal adres ve 34 bitlik gerçek adresle gerçeklenmiştir, dolayısıyla 8 TB sanal bellek ve 16 GB gerçek bellek adresleyebilir.

Kayan nokta birimi
Kayan nokta birimi, kayan nokta kayıt dosyası (KKD) ve F-box'tan oluşur. KKD otuz iki adet 64 bitlik yazmaç, üç okuma portu ve iki yazma portu içerir. F-box bir kayan nokta boru hattı ile çevrim başına bir bit üreten, boru hatlanmamış bir bölme birimi içerir. Dördüncü aşamada kayan nokta kayıt dosyası okunur ve veri biçimlendirilir.

Beşinci ve altıncı aşamalarda toplama ya da çıkarma için hizalama veya normalleştirme kaydırması ile yapışkan bit hesabı yapılır. Çarpma buyrukları boru hatlı bir radix-8 dizi çarpıcısında gerçekleştirilir. Yedinci ve sekizinci aşamalarda son toplama ile yuvarlama birlikte yürütülür. Kayan nokta işlemleri sonuçlarını dokuzuncu aşamada KKD'ye yazar. Boru hattında yürütülen buyrukların gecikmesi altı çevrimdir. Boru hatlanmamış birimde yürütülenlerin gecikmesi 31 ila 61 çevrim arasındadır.

Önbellekler
21064'te iki adet birincil önbellek bulunur. Bunlardan biri ileri yazma (write-through) politikasını benimseyen 8 KB'lik veri önbelleği, diğeri 8 KB'lik buyruk önbelleğidir. İki önbellek de doğrudan eşlemelidir ve satır boyu 32 bayttır. Önbellekler, alanı 98 µm² olan altı transistörlü SRAM hücreleriyle kurulmuştur. Diziler yaklaşık 1.024 hücre genişliğinde ve 66 hücre yüksekliğindedir. Üstteki iki satır yedek olarak ayrılmıştır.

İsteğe bağlı bir ikinci düzey harici önbellek (B-cache) 128 KB ila 16 MB arasında desteklenir. B-cache doğrudan eşlemelidir ve daha büyük boyutlara yapılandırılabilen 128 baytlık satır boyuna sahiptir. B-cache'e sistem veri yoluyla erişilir.

Harici arayüz
Harici arayüzün veri yolu 128 bitliktir ve genişliği ayarlanabilir. 21064 kullanan sistemlerin bir bölümü 64 bitlik harici arayüze sahiptir. Harici arayüz ayrıca 34 bitlik adres yolu içerir.

Üretim
21064, 1,68 milyon transistör içerir. Özgün EV4, 0,75 µm'lik ve üç alüminyum bağlantı katmanlı CMOS-4 sürecinde Digital tarafından üretildi. EV4'ün ölçüleri 16,8 × 13,9 mm, alanı 233,52 mm²'dir. Sonraki EV4S, CMOS-4'ün yüzde 10 küçültülmüş hâli olan ve 0,675 µm'ye inen CMOS-4S sürecinde üretildi. Bu sürümün ölçüleri 12,4 × 15,0 mm, alanı 186 mm²'dir.

21064, 3,3 voltluk besleme gerilimiyle çalışır. EV4, 200 MHz'de en fazla 30 W harcar. EV4S ise 150 MHz'de en fazla 21 W, 166 MHz'de 22,5 W ve 200 MHz'de 27 W harcar.

Paket
21064, 61,72 × 61,72 mm ölçülerinde, 431 pinli alümina seramik PGA içinde paketlendi. 431 pinin 291'i işaret, 140'ı güç ve topraklama içindir. Soğutucu doğrudan paketin üzerine yerleştirildi.

Kaynakça