Bu konsolun özünde, Emotion Engine ya da 'EE' denilen, Toshiba ve Sony tarafından ortaklaşa dizayn edilen, ~294.91 MHz'de çalışan güçlü bir paket (çipler bütünü) görüyoruz .

Emotion Engine, bu konsolun ilk anakart revizyonunda.
Çipset, sayısız bileşen içeriyor ve bunlardan biri de Ana İşlemci (CPU). Geri kalan kısımları ise belirli görevleri hızlandırmak için CPU'nun kullanımındadır. Bu analiz için EE'yi üç kısma ayıracağız:
- Lider: Bütün yongayı kontrol eden asıl bileşendir.
- Kullanılabilir bellek, işlemcilerin anlamlı işlemler yapabilmesi için çok önemli bir bileşen.
- Co-processors: Bunlar, belirli hesaplamaları hızlandırır.
Çipteki Lider
Kısaca açıklarsak, Ana İşlemci, bu konsol için özel tasarlanmış bir MIPS işlemci çekirdeği olan MIPS R5900. Belki hatırlarsınız ki Sony, daha ilk PlayStation'dan (ikincil kaynak olan LSI'den alınan MIPS R3000A'yı görüyoruz) MIPS silikon çipiyle risk almıştı. Sonraki nesilde ise MIPS 'R5900'le karşılaşıyoruz... ancak bu isim bizim için ne ifade ediyor?
Yeni sayıların ardında yatan şeyi anlamak için o dönemi kuşatan bir tarihî anlatıya bakalım.
Diğerlerini aşan başarı
MIPS R4000, yakın rakibi de dahil olmak üzere çok çeşitli sistemler tarafından benimsenen popüler bir işlemci serisiydi. Başarısı sayesinde MIPS, halka tek seferde pahası karşılanamayacak düzeyde gelişmeler (64-bit bilgi işleme, 8 aşamalı pipeline ve dahasını) getirdi.
İleri sararsak, sonraki büyük sıçrama 1995'te, R10000'in piyasaya sürülmesiyle gerçekleşti. Bu tarihte MIPS, SGI'ın maddî yatırımıyla, R4000'in paralellik kâbiliyetini çok ileri taşıdı ve ilk kez şunun gibi teknikler ortaya çıktı :
- Speculative execution: CPU, hesaplanmadan önce conditional branch sonucunu tahmin eder. Bu öngörüler, dâhilî 512 girdilik bir tabloda saklanan önceki işlemlerin sonuçlarına göre gerçekleştirilir. Koşul hesaplandığında, eğer öngörü doğru ise, İşlemci önemli zaman kazanmış olacak. Yok değilse, ekstra hesaplamalar yok edilir.
- Bu sayede MIPS, sonunda sürekli tekrar eden bir sorunu (control hazards) bir avantaja çevirdi.
- Diğer işlemcilerde ise dynamic branch prediction olarak anılan benzer bir işleyiş biçimi görebilirsiniz.
- 4-çıkışlı süperskaler pipeline: Pipeline tasarımına ek olarak, CPU artık pipeline'ın başlangıcında dört adede kadar talimat getirecek ve bunları ayrı birimlere dağıtarak CPU'nun bu talimatları aynı anda yürütmesini sağlayacaktır. Bunu yapmak suretiyle, İşlemci, daha üst derecede bir paralelliğe erişir.
- Out-of-order execution: Ayrıca İşlemci, birimlerini olabildiğince doldurmak için talimatların sırasını da yeniden düzenleyecek (hazard eklenmediği sürece).
- 128-bit'lik veri yoluna sahip L2 önbelleği, aynı anda İşlemciye daha fazla veri çekmeyi mümkün kılar, bu da önceki geliştirmeler göz önüne alındığında bir gerekiliktir.
Böylesi bir yenilik, karmaşık bir dizayna mâl olur ancak sonuçta ortaya çıkan ürün, her şekilde ucuz değildi. SGI, bunu sadece üst düzey ekipmanlarla bir bütün hâlinde satıyordu ve bunu bir ev konsoluna taşımaya çalışmak söz konusu bile olamazdı.
Halk'a sunulan Üst düzey
R10000'in ticârî kısıtlamalarının çoktan farkına varmış olan SGI/MIPS, Quantum Effect Devices'ı (QED), R10000'in orta ve düşük seviye pazar için makul fiyatlı bir versiyonunu geliştirmesi için işe aldı. Eski MIPS çalışanları tarafından kurulmuş bir şirket olan QED, MIPS çekirdeklerinin bütçeye uygun sektör için varyantlarını dizayn ediyordu.
Nihayet, QED, R5000 adlı yeni bir işlemci çekirdeği ile döndü; bu, R10000'in kayda değer kesintilere uğramış hâliydi :
- Sırasız yürütme özelliği, sıralı yürütmeye geri döndürülmüştü.
- Speculative execution kaldırıldı.
- Süperskalerlik iki tâlimatla (2-çıkışlı) kısıtlandı ve artık tam sayı tâlimatları paralelize edilmiyordu. Yine de kayan noktalı (floating point) tâlimatları diğerleriyle eşlenebiliyordu.
- Önceki eksiltmeler sebebiyle, L2, 64-bit veriyoluna indirildi.
Sonuç olarak bu, SGI'ın düşük bütçeli iş istasyonları gibi enerji (güç) tasarruflu donanım için ideal bir İşlemci hâline geldi. Her halükarda, QED'in vektör/3D uygulamaları için cazip bir ürün olarak tutmayı planladığı gibi, küçültülmüş pipeline'ın hala eşzamanlı kayan nokta işlemleri gerçekleştirdiğini unutmayın. Yakında başka bir şirketin de bunu hızla not ettiğini göreceksiniz.
İlave not olarak, ilginçtir ki okyanusun öbür ucunda da benzer geliştirmeler vardır fakat aksi yönde: ARM çiplerini üst düzey pazara taşımak uğruna ARM, DEC ile güçlerini birleştirdi.
Sony'e özel bir sipariş
Toshiba bir süredir MIPS lisansı sahibiydi ve MIPS varyasyonları ve paketleri üretmeye yabancı değildi. Bir noktada Sony ve Toshiba, Sony'nin yakında çıkacak konsolu için özel olarak tasarlanmış bir CPU üretmek üzere güçlerini birleştirdi. Bu Toshiba için muazzam bir avantajdı: CPU'ların çoğu zaman farklı paydaşlardan gelen çok sayıda gereksinimi karşılaması gerekir ve bunu yaparken uzmanlaşmaya yönelik fırsatları kısıtlar. Artık sadece tek bir amaç vardı: 3D oyun. Böylece her türlü yenilik için yeterli alan sağlanmış olur.
Bununla birlikte Toshiba, uygun fiyatlı R5000 tasarımını aldı ve vektör işlemlerini hızlandırmak için ince ayar yaptı. Yeni çekirdek R5900 olarak adlandırılıyor ve aşağıdaki '3D' geliştirmeleri sunuyor :
- MIPS III ISA'nın bir varyasyonu. Bu, daha önce Nintendo 64'te görülen orijinal 64 bit ISA'yı içerir, ancak ilginç işlem kodlarıyla genişletilmiştir. Sony, vektör hesaplamalarını hızlandırmak için (SH-4'e benzer, ancak yalnızca tamsayı) multimedia instructions adlı kendi SIMD uzantısının yanı sıra MIPS IV'ten bazı talimatlar (prefetch ve conditional move) ekledi.
- Multimedya talimatları hala 32 bit genişliğindedir ancak bir seferde üç adede kadar 128 bit vektörü çalıştırabilir. Vektör aritmetiği, min/maks ve yeni vektörler oluşturmak için birçok skaler kombinasyon gibi işlemler sunarlar.
- 32 adet 128 bit genel amaçlı register: Toshiba markalı bir başka önemli geliştirme. Tipik 32-bit depolama alanını unutun, şimdi 128-bit alanına adım attık. Bununla birlikte, işlemlerin çoğu mevcut alanın tamamını kullanmayacaktır (MIPS kelimeleri hala 64 bit uzunluğundadır). İşte bu noktada, yukarıda bahsedilen multimedya uzantısı denkleme dahil olur, çünkü seti genişletilmiş kayıt dosyasını tam olarak kullanacaktır.
- Yeni talimatlar kullanıldığında, her bir register birçok skaler türünden oluşan vektörleri saklayabilir (iki 64 bitlik tamsayıdan on altı 8 bitlik olana kadar).
- Performans kayıplarını önlemek için bu kayıtlara bir 128-bit veri yolu üzerinden erişilirken, CPU'nun geri kalanı dahili bir 64-bit veri yolu kullanır.
- İki 64-bit ALU. Her biri 64 bit tamsayıları bağımsız olarak çalıştırabilir, ancak aynı zamanda bir 128 bit ALU olmak için birleşebilir. İkincisi, bu parlak multimedya işlem kodlarının arkasındaki beyindir.
Bunların yanı sıra, geliştiricilerin hoşuna gidebilecek başka iyileştirmeler de buluyoruz:
- 6 aşamalı pipeline: Bu, öncekilere kıyasla bir ek aşamadır.
- 2 yönlü superscalar yürütme: İki ALU sayesinde, iki adede kadar 64 bit tamsayı işlemi artık paralel olarak yürütülür.
- Bu, MIPS R10000'ün kaybedilen bir başka avantajını geri kazandırır.
- 24 KB L1 önbelleği: Talimatlar için 16 KB ve veriler için 8 KB'a bölünmüştür.
- Ayrıca bir ön belleğe alma fonksiyonu uygulayarak talimat ve verileri çağırılmadan önce önbelleğe alır. Bu işlem, hafızadaki hangi konumların daha sık ulaşıldığını belirleyen bir ilave devre sayesinde gerçekleşir.
- 16 KB Scratchpad RAM: 'Hızlı RAM' olarak da bilinir.
- Hafıza yönetim birimi: Bellek erişimini sistemin geri kalanıyla koordine eder.
Çekirdek, 32-bit kayan noktalı sayılarla (C'de float olarak da bilinir) olan işlemleri hızlandıran bir ayrılmış kayan nokta işleme birimi ('COP1' olarak adlandırılır) ile tamamlanmıştır. Bu alışılmadık bir parçadır çünkü IEEE 754 standardını takip etmez ve bunun en bariz olanı infinity değerinin olmayışıdır (bunun yerine 0 hesaplanır) . Bunun dışında 32 adet 32 bitlik register'a sahiptir.
Tanıdık bir hafıza seçimi
Emotion Engine'in yanında iki adet 16 MB RAM bloğu olmak üzere toplam 32 MB ana hafızası vardır. Kullanılan hafızaya 16-bit veri yolu ile ulaşılıyor, türü ise RDRAM. (dejavu!).

Emotion Engine'in bellek dizaynı. Tıkanıklığın nerede ortaya çıkacağını tahmin edebilirsiniz.
İlk başta, bunu duyması biraz hayal kırıklığı yaşatabilir zira bunun aksine Emotion Engine'in dahili veriyolu 128-bit gibi büyük bir genişliğe sahip. Ancak, RAM çipleri; iki çipi bağımsız iki 16-bit veriyolu (her çipe 1 veriyolu) ile bağlamak suretiyle elde edilen çift kanallı mimariyi kullanacak şekilde stratejik olarak konumlandırılmıştır. Ortaya çıkan kurulumla teorik olarak 3,2 GB/sn'lik bir hız elde edilir, dolayısıyla hafıza gecikmesinin bu konsolda bir sorun olmayacağından emin olabilirsiniz!
Emotion Engine'in köşesinde, ana hafıza ile Karalama belleği arasında ya da ana hafıza ile EE içindeki bileşenler arasında veri transferi yapan güçlü bir Doğrudan Bellek Erişimi Kontrolcüsü (DMA Controller) ya da 'DMAC' var.
Veri aktarımı 128-bit'lik öbekler halinde yapılır fakat işin ilginç kısmı: Her sekiz öbekte bir ana veriyolunun kilidi geçici olarak açılır. Bu, paralelde (10 adede kadar) diğer DMA aktarımları ya da İşlemci'nin (CPU) ana veriyolunu kullanabilmesi için kapı aralar. Bu işleyiş biçimi (modus operandi) için dilim modu (slice mode) denir ve bu DMA birimindeki birçok mevcut moddan biridir. Şunu aklınızda bulundurun ki dilim modu, ana veriyolundaki gecikmeleri azaltmayı, DMA transferi genelinde bir yavaşlama pahasına yapar.
Geçmiş aksiliklerin önlemesi
İstesek de istemesek de Emotion Engine'in içinde meydana gelen trafiğin büyüklüğü sebebiyle, bu dizayn, sonunda Birleşik Hafıza Mimarisi ya da kısa adıyla UMA'nın getirdiği sonuçlardan muzdarip olacaktır. Şöyle ki: Birden çok bağımsız bileşen, ana hafızaya aynı anda eşirmeye çalışıp tıkanıklığa sebebiyet verecek. Aslında bu sorunu düzelmek için Sony, devamlı hafıza ihtiyacını şu yollarla hafifletti:
- İşlemciyi çok sayıda önbellekle donattı. Böylece, sadece zorunlu gereklilik durumlarında ana hafızaya erişilmesi gerekir.
- Bu makalede bahsedilen önbellek/karalama belleklerinin %99'u bu sebepten mevcuttur.
- 128-Byte'lık Write Back Buffer eklendi: Write Gather Pipe'a çok benzerdir ancak, %25'i dolana kadar beklemek yerine, ilk olarak veriyolunun durumunu (tıkanık mı açık mı) kontrol eder.
Bu, önbellekten yararlanabilecek uygulamalar için çok elverişli görünebilir ancak ya Görüntü Listeleri'ni (Display Lists) manipüle etme gibi önbelleği kullanmaması gereken işlemler ne olacak? Neyse ki İşlemci, sadece ve sadece Geri Yazma Arabelleğini kullanan Önbelleksiz (UnCached) Mod adlı bir diğer hafıza erişim moduna sahiptir. Böylelikle Önbelleği (Önbellek kayıplarını) düzeltmek için İşlemci döngüsü heba edilmez.
Dahası, Önbelleksiz hızlandırılmış mod da mevcut. Bu mod, hafızadaki ardışık adreslerin okunmasını hızlandırmak için bir arabellek ekler.
Diğer ilginç parçalar
Aynı Emotion Engine paketinin içinde, Image Processing Unit veya 'IPU' adı verilen ve bu kez image decompression için tasarlanmış bir işlemci daha bulunuyor. MDEC'nin halefi olan IPU, bir oyunun MPEG2 görüntülerini (movie) Ana İşlemciyi (CPU) meşgul etmeden çözmesi gerektiğinde kullanışlı olabilir.
Uzun lafın kısası, oyun, sıkıştırılmış görüntü akışını IPU'ya (umarız DMA kullanarak) gönderir ve bu GPU'nun (Grafik İşlemci) ekranda gösterebileceği bir formata çevrilir. Ayrıca PS2'nin İşletim Sistemi de DVD oynatma için IPU'dan istifade eder.
Son olarak, IPU ayrıca sıkıştırılmış Yüksek çözünürlüklü dokuları da işler. Bu da işlemci kullanımını ve büyük transferleri azaltır.