Bu performansı çok düşürecek bir eksiklik.Ama VU1’i kullanarak yazılım yoluyla tek dönümde 8 dokuya kadar işleme yapabiliyorsunuz. Yani programcı onları pek çok farklı şekilde kullanabilir ve hatta isterse es geçebilir. PS2’nin piyasaya çıktığı ilk dönemde pek çok oyun VU1’i kullanmıyordu mesela. Çünkü oyun tasarımcıları için böylesine karışık bir sisteme oyun hazırlamak ve onu iyice zorlayıp maksimum performansı almak hiç de kolay değil. PS2’nin en büyük handikabı bu aslında. Pentium III, Emotion Engine’den 2.5 kat daha hızlı olabilir. Ama sistemdeki darboğazları ve Emotion Engine’de bulunan vektör ünitelerini de hesaba katınca kimin daha hızlı olduğunu söylemek o kadar da kolay olmuyor. Buna karşın Xbox’ın çok daha basit bir yapıya sahip olması ve DirectX uyumluluğu sayesinde onun için oyun yapmak çok daha kolay. Üstelik PC ve GameCube oyunlarının Xbox’a çevrilmesi de hiç sorun değil. Sonuçta GameCube de yapı olarak Apple G4 platformundan geliyor. Bu noktada PS2 yalnız kalıyor ve Sony’nin elindeki tek direnç noktası şu ana kadar satmış olduğu 20 milyondan fazla PS2. Piyasaya 1.5 sene erken çıktığı için daha düşük saat hızlarına sahip olabilir PS2, ancak yine bu sayede pazarın büyük kısmını elinde tutuyor.
Diğer özellikler arasındaki farklılıklar?
En başından beri Xbox’ın PC’lerden pek farkı olmadığını söyleyip duruyoruz.Microsoft açıkça Sony’den farklı bir strateji izliyor. Yeni bir teknoloji geliştirmeyle veya oyunlara özel işlemciler kullanmayla ilgilenmiyor. En başından beri olabilecek en yüksek sistem özelliklerinin peşinden koşuyor. Üstelik bu sadece CPU ve GPU için geçerli değil. Microsoft bir ilke imza atıp Xbox’ın içine bir de sabitdisk yerleştiriyor. Bu sabitdisk sadece oyunları kaydedebilmeniz için kullanılacak. Yani oyunların kurulup kaldırılması söz konusu değil. Üstelik Xbox internet bağlantısı hazır olarak geliyor. 56K modem, kablo veya ADSL... hangisine sahip olduğunuz hiç mühim değil. Xbox’ı kutusundan çıkarıp takınca direkt internete girebileceksiniz. Bu özelliklerin ikisi de PS2’de yok ne yazık ki.Ancak Xbox’ın duyurulmasının ardından Sony sıkı bir çalışmaya girdi ve kısa süre içinde bu parçaları çevre birimi olarak çıkaracak. PS2’nin en önemli özelliklerinden bir hem USB, hem IEEE 1394 bağlantısına sahip olması. Bu sayede cihaz çevre birimleri ile kolayca geliştirilebiliyor.Ancak PS2’ye verdiğiniz paranın üstüne bir o kadar da sabitdisk ve modeme para vermek hoş olmasa gerek. Her iki cihazda da bulunan ortak özellik ise DVD oynatabilme. PS2’de DVD izlemek için DVD-Player yazılımına ihtiyacınız var, Xbox’da ise bir uzaktan kumanda modülü satın alıyorsunuz.Her iki konsol da DVD filmler için HDTV desteğine sahip. Ancak Xbox bu desteği oyunlarda verirken PS2 bu özellikten mahrum.
Yeni konsolların maliyetleri ve oyunların yaygınlığı
PS2’nin en büyük avantajı oyunları elbette. Her şeyden önce yıllardır piyasada olan Playstation için hazırlanmış binlerce oyunu oynatabiliyor. Ayrıca geçen 1.5 sene içinde PS2 için yüzlerce oyun çıktı piyasaya. Xbox, 2002’nin ikinci yarısında ülkemize geldiğinde piyasaya 200 kadar oyunu çıkmış olacak. Ancak o zaman geldiğinde Plasystation 2’nin bine yakın oyunu olacaktır. Ürünlerin fiyatına baktığınızda hemen hemen eşit olduğunu görüyorsunuz. Bu PS2 için bir dezavantaj çünkü Xbox’ın full aksesuar geldiği düşünülürse PS2 daha ucuz olmalı. Şu an ülkemizde PS2’nin fiyatı 400 dolar civarında, ancak Xbox’ın gelmesiyle onun da fiyatının 300 dolara düşeceği tahmin ediliyor. Xbox’ın çıkış fiyatı ise 300$ olarak şimdiden açıklandı bile.
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.
Çok uzun bir süre “PC mi iyi yoksa konsollar mı?” tartışması sürüp gitmişti. Ama, zamanla PC en yakın rakibi Playstation’la arasındaki farkı iyice açınca, bu tartışmalar da küllendi. Hem grafik hem de diğer özellikler açısından Playstation’ın PC ile baş etmesine imkan yoktu. Ama bir buçuk sene önce Playstation 2’nin çıkışıyla tartışmalar tekrar alevlendi. Çünkü Playstation 2 aradaki farkı kapamış, hatta pek çok açıdan PC’nin önüne geçmişti. Bu ay Microsoft’un Xbox ve Nintendo GameCube’ünün raflardaki yerlerini almasıyla, tartışmanın konusunu “PC mi konsol mu?”dan “Hangi konsol daha iyi?”ye döndü. Bu yarışta yer alan üç oyuncudan GameCube bize şimdiden kaybetmiş gözüküyor, çünkü Nintendo ürünlerinin ülkemizde satışı yok ve yurtdışından satın alınsa bile oyun ve teknik destek bulmak mümkün değil. Bildiğimiz kadarıyla Nintendo Türkiye pazarına girme konusunda pek hevesli değil ve bu yakın zamanda değişecek gibi gözükmüyor. Bu yüzden biz sadece ülkemizde bir senedir satılan Playstation 2 ve 2002 içinde çıkacak olan Xbox’ı karşılaştırdık. Ama öncelikle konsolların genel çalışma prensiplerine biraz bakalım.
Rakamlara göre hangi konsol daha güçlü
PS2’nin temel çalışma şekli PC’lerle aynı. İşlemci, RAM, grafik işlemci gibi parçaların hepsi PS2’de de mevcut.Ancak sistemin detayına baktığımız zaman yapısal farklılıkların çok fazla olduğunu görüyoruz. Bunun sebebi PS2’nin tasarımı sırasında tamamen 3D oyunların akılda tutulmuş olması. Bu yüzden PS2, PC’lerde bulunan dar boğazlara sahip değil. Xbox ise tüm bileşenleri standart olan bir PC’den farklı olmadığı için bu darboğazlar onun için de söz konusu.Yani bu karşılaştırmada geçerli olan pek çok şey PS2 ve PC karşılaştırması için de geçerli. Rakamlara baktığınız zaman, Xbox’ın sahip olduğu 733 MHz’lik Intel Pentium III işlemcisi, PS2 için Toshiba’nın geliştirdiği 294.912 MHz’lik Emotion Engine’inden çok daha güçlü elbette. Üstelik Xbox, nVidia’nın geliştirdiği GeForce 3 tabanlı bir GPU’ya sahip. Bu sayede işlemci 3D render işleminin iki basamağı olan Transformation ve Lightning işlemlerini grafik chip’ine yaptırıyor ve dolayısıyla işlemcinin yükü daha da azalmış oluyor. PS2’nin Emotion Engine’i ise hem saat hızı olarak çok daha düşük hem de bir GPU ile desteklenmemiş. Bu ilk bakış ile Xbox, PS2’den çok daha güçlü gibi gözükebilir. Ancak PS2’nin derinliklerine indiğinizde işlerin bu kadar da basit olmadığını anlıyorsunuz. Bunun iki temel sebebi var. Birincisi söylediğimiz gibi PS2’nin tamamen oyunlar için tasarlanmış olması, ikincisi ise Emotion Engine’da bulunan ve işlemciyi destekleyen iki Vector Unit. PC’lerde benzerini görmediğimiz bu iki birim efektif olarak kullanıldığında PS2 gerçekten çok güçlü hale geliyor.
Statik ve dinamik uygulamalar arasındaki farklılıklar
PC’lerde ve dolayısıyla Xbox’da bulunan dar boğazları anlamak için öncelikle ofis uygulamaları gibi statik programlarla oyunların da içinde bulunduğu dinamik uygulamaların farkını ortaya koymalıyız. Statik uygulamalarda küçük dosyalar üzerinde çalışırız, ancak bu küçük dosyaları işleyen programın kendisi oldukça büyüktür. Dinamik programlarda, yani oyunlarda ise programın kendisi küçüktür ancak işlenen datanın akışı çok büyüktür.Bu yüzden statik uygulamalar büyük bir cache’e gerek duyarlar. Çünkü program cache’de çok yer tutar.Ancak dinamik uygulamalarda önemli olan cache’in büyüklüğünden çok cache’e verilerin ne kadar hızlı girip çıktığıdır. Yani, veriyi işleyen program küçükken işlenen data çok büyüktür. Mesela bir DVD film izlerken 2-3GB gibi büyük bir data cache’e girip çıkar.Winword uygulamasında ise veri genelde 1MB’ın altındadır. Öyleyse 3D oyunlarda perfromans alabilmek için en önemli ihtiyaçlarımızdan biri sistem hafızasına hızlı yollarla bağlanmış cache’lere sahip olmak.