Alpha 21164

Alpha 21164, aynı zamanda Alpha buyruk kümesi mimarisini geliştirmiş olan Digital Equipment Corporation tarafından geliştirilmiş, EV5 kod adıyla da bilinen bir mikroişlemcidir. Alpha 21164 Digital’in en çok satışı yapılan mikroişlemcisi Alpha 21064A’yı takiben 1995 yılı Ocak ayında tanıtılmıştır. Onu 1998 yılında 21264 izleyecektir.

Alpha 21164’ün ilk silikonu şubat 1994’te üretildi ve OpenVMS, Digital UNIX and Windows NT işletim sistemleri başarıyla üzerinde çalıştırıldı. 1994 yılı sonlarına doğru denendi ve 1995 yılı ocak ayında 266 MHz’lık sürümüyle tanıtımı yapıldı. Mart 1995’te 300 MHz’lık bir sürümü tanıtıldı. Son Alpha 21164, örnek değerlere uygun 333 MHz’lık bir sürümdü ve 2 Ekim 1995’te tanıtıldı. Alpha 21164 Digital’in en çok satan mikroişlemcisi unvanını 1996 yılında 400 MHz’lik Alpha 21164A’ya devretti.

Digital Alpha 21164’ü çeşitli saat sıklıklarıyla AlphaServers sunucularında ve AlphaStation iş istasyonlarında kullandı. Digital Alpha 21164’ü ayrıca Alpha VME 5/352 ve Alpha VME 5/480 tek kartlı bilgisayarlarda ve AlphaPC 164, AlphaPC 164LX anakartlarında da kullandı. Alpha ortağı Cray Research T3E-600 süper bilgisayarlarında 300 MHz’lık Alpha 21164 kullandı. Ayrıca DeskStation da Alpha 21164 kullanarak iş istasyonları kurdu.

21164 başarısını 275 MHz’lık Alpha 21164A ile sürdürdü ta ki Intel Pentium Pro’nun 1995 yılı Kasım ayında tanıtılması ve 200 MHz’lık sürümünün Alpha 21164’ün 300Mhz’lık sürümüne göre SPECint95_base değerlendirmesinde daha iyi sonuçlar vermesine kadar. Ancak 21164 kayan nokta başarımını sürdürdü. Sonraki yıl 333 MHz’lık 21164’ün başarımı Pentium Pro’yu geçse de aynı sene içerisinde MIPS Technologies R10000 ve Hewlett-Packard PA-8000’ın gerisinde kaldı.

Alpha 21164, tek çevrimde ikisi aritmetik mantık ve diğer ikisi kayan nokta birimine olmak üzere toplam 4 buyruk koşturabilen 4 yollu superscalar bir mikroişlemcidir. Aritmetik boru hattı yedi aşamalı, kayan nokta boru hattı ise on aşamalıdır. 21164 43-bit sanal adres ve 40-bit fiziksel adres gerçekleştirebilmektedir. Dolayısıyla 8TB sanal bellek ve 1TB fiziksel adres adresleyebilmektedir.

Aritmetik mantık birimi iki aritmetik boru hattı ve iki aritmetik yazmaç öbeğinden oluşmaktadır. İki boru hattı; toplama ve çarpma boru hattı özdeş değildir. Her ikisi de genel amaçlı toplama, mantık, yükleme, karşılaştırma ve şartlı buyrukları koşturmasına rağmen her biri farklı buyrukları koşturmakla yükümlüdür. Çarpma boru hattı kaydırma, saklama ve çarpma buyruklarını koşturur.

Dallanma, şart ve çarpma hariç diğer bütün buyruklar bir çevrimlik gecikme içerisinde beşinci aşamada çalıştırılma işlemlerini tamamlarlar. Dallanma ve şart buyrukları altıncı aşamada çalıştırılır böylece sonucuna bağlı oldukları karşılaştırma buyruğuyla koşturulabilirler.

Aritmetik yazmaç öbeği otuz ikisi Alpha Mimarisi tarafından özelleştirilmiş ve sekizi PALcode tarafından bloknot bellek olarak kullanılan kırk adet 64-bit yazmaç içermektedir. Yazmaç öbeği iki boru hattı arasında eşit bölünmüş dört okuma portu ve iki yazma portuna sahiptir.

Kayan nokta birimi iki kayan nokta boru hattı ve iki kayan nokta yazmaçtan oluşmaktadır. İki boru hattı özdeş değildir birisi çarpma burukları hariç diğer bütün kayan nokta buyruklarını koştururken diğeri sadece çarpma buyruklarını koşturur. Her iki boru hattıda dört aşamalıdır. Boru hattı kullanmayan kayan nokta bölücüsü toplama boru hattına bağlanmıştır. Bölme hariç diğer bütün kayan nokta buyrukları dört çevrimlik gecikmeye sahiptir. Bölme gecikmeleri ondalık sayının hassaslığına bağlı olarak değişmektedir. Tek duyarlı bölmeler 15 ila 31 çevrim gecikmeye neden olurken çift duyarlı bölmeler 22 ila 60 çevrim gecikmeye neden olabilmektedir.

Alpha 21164, ikisi katman üzerinde ve biri harici ve opsiyonel olmak üzere üç seviyeli önbelleğe sahiptir. Önbellek 7.2 milyon transistör içermektedir.

Birincil önbellek buyruklar ve veri için ayrı önbelleğe ayrılmıştır; I-cache ve D-cache. Doğrudan ilişkili, 8KB ve 32 bayt önbellek satırı boyutuna sahiplerdir. D-cache performansı arttırma amaçlı çift portludur. İleri yazma ve on-read yerleştirme tutumunu izler.

S-cache olarak bilinen ikincil önbellek kart üzerinde ve 96KB kapasiteye sahiptir. İkincil önbellek 21164’ün daha fazla bantgenişliği ve daha fazla buyruk ve veri temin etme ihtiyacına karşılık vermiştir. İkincil önbelleğe iki çevrimde erişim gerçekleşmektedir. Başarımı arttırma amaçlı önbellek boru hatlanmıştır. İkincil önbelleğin bir diğer faydası ise kolayca çok yollu önbellek olarak tanımlanabilmesi, dolayısıyla 3 yollu kümeli ilişkili olabilmesi ve doğrudan ilişkili önbelleğe göre çok daha iyi bulma oranına sahip olabilmesidir. S-cache, gerekli büyük fiziksel alanından dolayı, I-box, E-box, F-box ve M-box kanadında uygulanmış ve yarıya indirilmiştir. Böylece önbellek veriye iki çevrimde erişebilmektedir.

B-cache olarak da bilinen üçüncül önbellek harici SRAM’lerle tanımlanmıştır. B-cache opsiyoneldir ve bazı Alpha 21164 kullanan sistemlerde yoktur. B-cache kapasitesi 1 ila 64 MB arasındadır daha küçük kapasiteli olanları ikincil önbellek desteklemez. Geri yazma ve on-write yerleştirme tutumunu izler ve doğrudan ilişkilidir. B-cache kart üzerinde harici arayüz tarafından kontrol edilir. B-cache asenkron ya da senkron SRAM’lerle oluşturulabilir. B-Cache erişimi sistem yoluyla sağlanır.

Harici arayüz, 128-bit’lik bir sistem yoludur. Sistem yolu harici saat sıklığı 3 ila 15 kat daha düşük bir sıklıkta ya da 300 MHz dahili saat sıklığıyla birlikte 20 ila 200 MHz’da işlem yapar. Sistem yolu saat işareti mikroişlemci tarafından üretilir.

Alpha 21164 dahili saat sıklığının iki katı büyüklüğünde harici saat sıklığına ihtiyaç duyar. Örneğin 300 MHz Alpha 21164 600 MHz harici saat sıklığı gerektirir.

Alpha 21164 16.5’e 18.1 mm’lik (299 mm2) 9.3 milyon transistör içerir. Katman Digital’in beşinci nesil CMOS (CMOS-5) yöntemiyle üretilmiştir. 21164 3.3-volt V güce ihtiyaç duyar.