Playstation 2 Xbox’a Karşı

Xbox’ın piyasaya çıkışıyla birlikte konsollar arasındaki rekabet de iyice kızışmaya başladı. Acaba hangi konsol daha güçlü... Sizin için her iki konsolu da inceleyip, çeşitli yönlerden karşılaştırdık.

Playstation 2 Xbox’a Karşı (Sayfa 2)

Ne yazık ki PC işlemcileri başlangıçta salt statik uygulamalar düşünülerek tasarlanmış ve aradan geçen onca yılda bu yapı pek de gelişmemiş. Sadece işlemciler hızlandıkça bu dar boğaza çare olması için cache’ler büyütülmüş. Yani havuza su veren musluk yavaş akıyor öyleyse havuzu büyük tutalım ki daha geç boşalsın gibi bir mantık. Şimdi PC’nin çalışma döngüsüne bakalım.

3D uygulamalar PC’de nasıl çalışıyor?
Bir 3D sahnenin hazırlanışı sırasında geçilen yolları izleyelim. Öncelikle işlemci kendi çalışma alanı olan L1 ve L2 cache’lerine RAM’de bulunan 3D Motor kodunu yükler. Daha sonra yine RAM’den, çizilen 3D sahneye ait veriler North Bridge üzerinden cache’e akar ve burada işlenerek tekrar ana hafızaya geri döner. Burada oluşturulan bilgi GPU’ya, çizilecek olan sahneyi anlatmaktadır. Ana hafızadan North Bridge’i geçip bu sefer GPU’ya gelen veriler ekran kartı üzerindeki RAM’lere yerleşir. GPU’- nun cache’i olarak çalışan ekran kartı üzerindeki RAM’lerle GPU arasında gidip gelen veriler sonunda frame buffer’dan çıkar ve RAMDAC’da görüntüye çevrilerek monitöre yollanır. Gördüğünüz gibi, 3D bir sahnenin görüntülenmesi için oldukça büyük olan datalar, cache ve RAM’ler arasında BUS adını verdiğimiz veri yollarında mekik dokuyor. Bu yüzden BUS’lardan her hangi birinin yavaş olması ciddi darboğazları beraberinde getiriyor.

3D uygulamlar PS2’de nasıl çalışıyor
PS2’de ise bir North Bridge yok. Bunun yerine Emotion Engine’in üzerinde 10 kanallık bir DMAC (Direct Memory Access Controller/Direkt Hafıza Erişim Kontrolörü) bulunuyor.Aynı anda 10 farklı veri akışına olanak veren bu DMAC on-die yani Emotion Engine chip’i içinde olduğu için tüm birimleri 64-bit ve 128-bit’lik yollarla birbirine bağlıyor. Böylece 3D ssahneyi çizmek için gereken veri, ana sistem hafızasından bir kere alındıktan sonra tamamen Emotion Engine içinde dolaşıyor ve buradan direkt olarak grafik işlemciye yollanıyor. Veriler chip’in dışına çıkmadığı ve DMAC’ın hızlı yollarından geçtiği için veri akış hızında hiçbir sorun olmuyor. Statik ve Dinamik uygulamaların cache ve BUS kullanım farklılıklarında anlattığımız gibi PC işlemcileri ve çalışma mantıkları, veriyollarındaki dar boğaz handikabına sahipler. Ancak bu handikap sadece veriyolu ile sınırlı değil. Dinamik uygulamaların bir özelliği de sürekli olarak aynı işin tekrarlanıp durmasıdır. Mesela bu render işlemi ise veriler sürekli uygulamanın koduna girip çıkar ama hepsine yapılan işlem aynıdır. Statik uygulamalarda ise veri akışında böyle bir paralellik söz konusu değildir. Öyleyse dinamik uygulamalar için hazırlanan SIMD komutlarında bu özellik kullanılarak işlemler hızlandırılabilir. Aşağıdaki grafikte Pentium III’de kullanılan SIMD komutları ile Emotion Engine’deki 128 bit’lik SIMD komutlarının çalışma mantığındaki farkı görebilirsiniz. Dinamik uygulamaların tekrarcılığı kullanıldığında tek seferde bir SIMD kullanarak biden fazla iş yapmak mümkün olabiliyor.

Vektör üniteleri nedir ve nasıl çalışır?

PS2 kullanırken değinmemiz gereken ikinci bir önemli nokta vektör üniteleri elbette. PS2’de iki tane olan vektör ünitelerini, kabaca ek veya yardımcı işlemciler olarak ifade edebiliriz. Yapıları, bir noktaya kadar, ana işlemciye benziyor. Onlar da FMAC ve ALU gibi birimlere sahipler. PS2’de ki vektör ünitelerinin isimleri VU0 ve VU1. Bu her iki birim de yapı olarak bir birinin benzeri. Ancak işlevleri bir birinden farklı. VU0 genelde işlemciye eşlik ediyor ve yardımcı işlemcilere özel komut setleri kullanıyor. CPU üzerinde VUO ünitesini kontrol eden özel bir bölüm ve VUO’yu CPU’ya bağlayan kendine has 128 bit’lik hızlı bir bağlantı var. Ayrıca bu iki bileşen arasında SPRAM (Scratch Pad RAM) adı verilen 16 K’lık özel bir cache var. Oldukça hızlı bir hafıza olan SPRAM’i CPU ve VUO’nun ortak çalışma alanı olarak görebilirsiniz. Bu ortak çalışma alanı ve 128 bit’lik özel BUS sayesinde iki bileşen tek bir birimmişçesine çalışabiliyor. Ayrıca bunlara yine CPU’ya özel bir 128 bit’lik bağlantıya sahip olan FPU birimi ekleniyor.Bilgisayarlarda karşımıza çıkan standart FPU’lardan bir farkı yok bu birimin. Kayan nokta işlemlerini üstleniyor, ancak yine kayan nokta hesaplaması yapabilen VU0 yanında oldukça zayıf. VU1 genelde geometri işlemeyle meşgul oluyor. Dediğimiz gibi mikromimari olarak her iki vektör ünitesi de benzer. Ancak buna rağmen VU1,VU0’dan daha güçlü. Bunun bir sebebi de veri ve komut setlerinin her ikisinin de 16K, yani VU0’ın iki katı olması. İkincisi ise VU0’ın yardımcı işlemci modundayken sahip olduğu bileşenlerin hepsini kullanmaması. Ayrıca VU1 üzerinde fazladan bir FPU birimi var. VU1 işlemciye direkt olarak bağlı değil. VUO ile arasında 64 bit’lik özel bir bağlantı var, ayrıca temel BUS olan DMAC üzerinden veri transferi yapabiliyorlar. Ancak VU1, Emotion Engine’de verilerin son olarak işlenip grafik işlemciye yollandığı birim olan GIF’e 3 ayrı 128 bit’lik bağlantıya sahip. VU1’in fonksiyonu programcının tercihine göre değişebiliyor. Ancak genelde iki seçenek ağır basıyor. Bunlardan ilki, daha zayıf ikinci bir işlemci gibi çalışmak. Yani CPU+VU0 ikilisinin yaptığı işin aynısını tek başına yapıyor ancak daha yavaş çalışıyor. İkinci seçenek ile 3D render organizasyonunda CPU+VU0 ile iş birliği yapmak. Bu durumda ise VU1, genelde Transform& Lightning birimi olarak görev alıyor. Böylece PS2 bir GPU’ya sahip olamama açığını kapatmış oluyor.

PS2’nin programlamasındaki zorluklar
Hem VU0, hem VU1 için ortak olan nokta, her ikisinin de esnek yapıya sahip olması. Mesela PS2’nin grafik işlemcisi tek dönümde birden fazla doku işleme özelliğine sahip değil.

Okuyucu Yorumları

İlk yorum yapan siz olun
Sen de yorum yaz


Bu konuda okuyacaklarınız
CHIP'i Takip edin
E-Posta listemize katılın
CHIP Dergi Mobil Cihazınızda

İlginizi çekebilir