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.
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.