« GameCube'un Mimarisi (index)

GameCube'un Mimarisi

Chapter 3: İşlemci (CPU)


İçindekiler

  1. PowerPC'nin Kökenleri
    1. Ticari kilometre taşı
    2. Ortalama kullanıcıya ulaşmak
    3. PowerPC'yi Yaygınlaştırmak
  2. Çağdaş eser
    1. Bireysel gelişmeler
    2. Yeniden güç birliği
    3. Grup dağılıyor
  3. PowerPC Gekko
  4. IBM'in geliştirmeleri
  5. İleriye doğru bir adım mı yoksa geriye doğru bir adım mı?
  6. Akıllı bellek sistemi
  7. ARAM'dan en iyi şekilde yararlanmak

SGI'ın grafik pazarındaki hakimiyetini kaybetmesinin ardından Nintendo'nun ortaklık kuracağı yeni oyunculara ihtiyacı vardı.

Umut verici bir aday IBM gibi görünüyor: Ana bilgisayarlar üzerindeki ünlü çalışmalarının yanı sıra, yakın zamanda Motorola ve Apple ile Intel'in PC pazarındaki hakimiyetiyle rekabet edebilecek kadar güçlü bir CPU yaratmak için ittifak kurdular. Ortaya çıkan ürün, PowerPC adını taşıyan ve Apple'ın Macintosh'larının ve bazı gömülü sistemlerinin %99'una güç vermek üzere seçilen bir dizi işlemcidir.

Image
PowerPC Gekko çipi. Bu, GameCube'un barındırdığı şeydir.

GameCube için bunun ne anlama geldiğini anlamak için, PowerPC CPU ile gelen yeniliklere bir göz atalım.

PowerPC'nin Kökenleri

IBM, RISC CPU tasarımını ana akım pazara iten üç erken güçten biriydi. 80'ler sırasında, Berkeley 'RISC CPU' geliştirirken ve Stanford akademisyenleri MIPS'i henüz kurarken, IBM zaten 801 ve ROMP CPU'larını üretmişti. Bu, daha sonra 'RISC modeli' olarak bilinen bir dizi yönergeyi uygulayan, çığır açıcı ancak ticari olarak başarısız silikonlardı .

Ticari kilometre taşı

90'lara girerken, IBM 'IBM RS/6000' adını verdiği yeni bir UNIX iş istasyonu serisiyle yeniden denedi ve bu seride, yeni bir yerleşik RISC CPU: POWER1. Instruction-level parallelism odaklı olarak, bu sonuncusu, cazip gelişmeler sundu, örneğin :

Buna rağmen, POWER1 CPU birden fazla çipten oluşan büyük ve pahalı bir paketti. Bu nedenle, IBM'in bir sonraki girişimi için tasarımını küçülterek tek bir çipe sığdırdı. Hâlâ POWER uyumlu olmasına rağmen, bu, 32 bit FPU'ya sahip olmanın maliyetinden, bir von Neumann önbellek mimarisinden ve sıralı yürütmeye geri dönmenin maliyetine yol açtı. Yeni çip, RISC Tek Çipli (veya 'RSC') olarak adlandırıldı ve RS/6000 iş istasyonlarının düşük hat textle gönderildi.

Ortalama kullanıcıya ulaşmak

Image
IBM'nin POWER geliştirme kartı (1992), Apple tarafından kullanıldı.

Bu gelişmelerin ortasında, IBM ayrıca Intel-Microsoft tekelini masaüstü pazarında alt edebilmek için Apple ve Motorola ile güçlerini birleştirmeyi kabul ederek AIM ittifakını oluşturdu. Böylece, düşük seviyede rekabetçi bir CPU için yeni bir proje tasarlandı. Bu, üç şirketin fikri mülkiyeti içerir ve şunları kapsar:

Motorola 88110 ekibinin bir üyesi olan Keith Diefendorff, baş mimar olarak işe alındı ve 1993 yılında proje şu sonuçlarla tamamlandı:

PowerPC'yi Yaygınlaştırmak

Yeni serinin hem teknik olarak rekabetçi hem de ticari olarak uygulanabilir olmasını sağlamak için, PowerPC 601, komut paralelliği konusunda bazı gelişmeleri kitlelere sunmaya çalıştı. Bunlardan bazıları şunlardır :

Son kullanıcılar için, bu yeni CPU artık IBM'in düşük kaliteli RS/6000 serisinde ve Apple'ın 'Power Macintosh' adlı yeni Macintosh bilgisayar serisinde yer alacaktı.

Çağdaş eser

PowerPC 601, PowerPC serisinin ivmesini başlatmak için tasarlanmıştı, ancak sonraki yıllarda mikro mimaride büyük değişiklikler oldu.

Bireysel gelişmeler

601 piyasaya sürüldükten sonra, Motorola ve IBM bir sonraki nesil üzerinde bağımsız olarak çalışmaya karar verdiler. Bu, iki ayrı ürün grubu olarak somutlaşan saf bir PowerPC uygulaması (POWER ISA izlerini ortadan kaldırarak) olabilir :

603, verimli gücüyle öne çıkması gerekirken, mevcut iş uygulamaları onun yeniliklerini gölgede bıraktı. Örneğin, Apple'ın yazılım mimarisi hala 68000 komutlarını emüle etmeye dayanıyordu ve bu da 603'ün küçük cache boyutunu darboğaza sokuyordu.

Ek olarak, IBM ayrıca masaüstü CPU yerine mikrodenetleyici çözümü olarak tasarlanan PowerPC 4xx serisini de geliştirmiştir . Küçük cache'leri bir araya getirir ve MMU ve FPU gibi karmaşık modülleri atlarlar. Ancak, bunların varyantları, üreticinin ihtiyaçlarına göre uyarlanabilmesi için özelleştirilebilir bir paket olarak sunuldu. Bununla birlikte, 4xx bu makale için özel bir ilgi konusu olmasa da, ünlü bir rakip onu ikincil görevler için benimsemiştir.

Yeniden güç birliği

Sonuç olarak, ikinci nesil masaüstü PowerPC yongaları ya çok pahalı ya da Intel'e karşı rekabet edemeyecek kadar zayıf olarak değerlendirildi. Böylece Apple, IBM ve Motorola'yı, her iki dünyanın en iyi özelliklerini bir araya getiren yeni birleşik nesilde yeniden işbirliği yapmaya ikna etti. Enerji verimli 603, yeni tasarımın temeli olarak seçildi. Bu temeli geliştirmek için bazı kararlar alındı:

Bu, Apple tarafından PowerPC G3 olarak popüler hale getirilen 750 serisi oldu. O zamandan itibaren IBM ve Motorola, 750 modelinin varyantları ve iyileştirmeleri üzerinde çalışmaya devam etti. Bunlar, daha yüksek saat hızları, daha büyük cache ve daha küçük üretim sürecine odaklanıyordu.

İlginçtir ki, geliştirme sürecindeki çalkantıları atlatmayı başaranlar her zaman en enerji verimli CPU'lardır, diğerleri (MIPS, Intel ve ARM) daha sonra bunu doğrulayacaktır.

Grup dağılıyor

Zaman geçtikçe, üç şirket giderek daha da uzaklaştı. PowerPC G3'ün piyasaya sürülmesinden iki yıl sonra, Motorola kendi başına 7400 adlı yeni bir seri çıkardı (Apple bu seriye G4 adını verdi). Bu, 64 bit FPU, 'MPX' adı verilen daha hızlı bir veri yolu mimarisi ve 'Altivec' adı verilen bir dizi SIMD komutunu içeriyordu. Masaüstü pazarında popüler olmasına rağmen (Apple sayesinde), IBM yalnızca kendi özel POWER CPU serisine odaklandı.

Yıllar sonra, 2003 yılında Motorola nihayet CPU işinden vazgeçti ve yarı iletken bölümünü elinden çıkardı, bu da 'Freescale' şirketinin kurulmasına yol açtı. Bu şirket de PowerPC yongaları üzerinde çalışmakla ilgilenmiyordu ve böylece AIM ittifakı sona erdi. Her ne olursa olsun, Apple'ın hala yeni CPU'lara ihtiyacı vardı, bu yüzden IBM, POWER4 tasarımını alıp küçülterek bu seriyi devam ettirdi ve PowerPC 970 CPU'yu (aynı zamanda 'G5' olarak da bilinir) ortaya çıkardı.

Ve tarih bölümü burada sona eriyor. Bu nedenle, GameCube'ün benzersiz CPU'suna (750/G3 ile 7400/G4 arasında yer alır) bir göz atmanın zamanı geldi. Şimdi, bundan sonra GameCube donanımına odaklanacağım, ancak bu sapma dikkatinizi çektiyse, PlayStation 3, Xbox 360 ve Wii U çalışmalarını da okumak isteyebilirsiniz.

PowerPC Gekko

2001 yılına geri dönersek, Nintendo güçlü ama ucuz bir şeye ihtiyaç duyuyordu. Hızlı bir şekilde ilerlediğimizde, Nintendo'nun güçlü ama ucuz bir şeye ihtiyacı vardı, bu yüzden IBM bu kırmızı çizgilere uymak için eski tasarımlarından biri olan PowerPC 750CXe'yi (Early-Summer 2001 olarak bilinen son iMac G3'te bulunan) aldı ve oyun geliştiricilerini memnun edecek yeteneklerle güçlendirdi. Sonuç PowerPC Gekko oldu ve 486 MHz hızında çalışıyor.

Image
Gekko'nun mimarisi.

Gekko'yu bu kadar özel yapan şeyin ne olduğunu bulalım ve bunu yapmak için önce 750CXe'nin sunduklarına bakmamız gerekiyor. PowerPC'nin tarihçesini inceledikten sonra, bu bilgilerin birçoğunun önceki tasarımlarla örtüştüğünü fark edebilirsiniz (bu çalışmaların amacı da budur!). Bununla birlikte, 750CXe şunları sunmaktadır:

Ayrıca, CPU belirli hesaplamaları hızlandırmak için özel birimler de içerir :

Ve elbette, bellek bant genişliğini hızlandırmak için bir miktar önbellek de dahil edilmiştir:

IBM'in geliştirmeleri

Önceki özelliklerin listesi (önceki nesillere göre) çok takdir edilse de, bu CPU hala oyun performansı açısından diğerlerinden geride kalır (unutmayalım ki bu hala bir genel amaçlı CPU'dur, elektronik tablolarda iyidir ancak ortalama fizikte). Bunu telafi etmek için IBM, Gekko'yu oluşturacak aşağıdaki ince ayarları ekledi:

Bu geliştirmeler, oyun mantığını (fizik, çarpışmalar, vb.) ele almanın yanı sıra, CPU'nun grafik işlem hattının bazı bölümlerini (geometri dönüşümleri, aydınlatma, vb.) kabul edilebilir bir performansla uygulamasına olanak tanıyacaktır. GPU yalnızca sınırlı sayıda işlemi hızlandırabildiği için bu çok önemlidir, bu nedenle nihai sonuç GPU'nun sınırlamalarına bağlı değildir.

İleriye doğru bir adım mı yoksa geriye doğru bir adım mı?

Nintendo 64 makalenizde, sistemin 64 bit CPU'ya sahip olduğunu, ancak GameCube'ün 32 bit olduğunu açıkladık. Nintendo konsollarının güçünü mü düşürdü?

Gerçekten de Gekko 32-bit PowerPC spesifikasyonunu uygularken MIPS R4300i 32-bit ve 64-bit modları arasında geçiş yapabilmektedir. Bunun bir gelişme olup olmadığını yanıtlamak için kendinize sormanız gerekir: Neden '64-bitliğe' ihtiyacınız olsun ki?

Gördüğünüz gibi GameCube, '64-bit konsol' olarak adlandırılmadan 64-bit sistemlerin avantajlarından yararlanmaktadır. İşte bu yüzden siz ve ben iki karmaşık makineyi 'bit sayıları' ile özetleyemeyiz.

Akıllı bellek sistemi

Yeni nesil mimarinin tasarımı sırasında, Nintendo'nun mimarları önceki tasarımlarının ölüm sonrası analizini gerçekleştirdiler ve bazı yüksek gecikmeli bileşenlerle (RDRAM) birlikte Birleşik Bellek mimarisinin kullanılmasının darboğazların en büyük nedenlerinden birine yol açtığını keşfettiler (CPU döngülerinin neredeyse %50'si boşta çalışırken boşa harcanıyordu) . Ayrıca, birden fazla bağımsız birimin dahil edilmesi, bellek veri yolu için ilgili bir rekabete katkıda bulunmuştur.

Bu nedenle GameCube mühendisleri, ayrılmış bellek alanı sağlayan ve düşük gecikmeli yongalar kullanan yeni bir bellek sistemi geliştirdiler. Yeni tasarımla birlikte GPU ve CPU artık aynı RAM için rekabet etmeyecek (doluluk oranı sorunlarına neden olacak) çünkü GPU artık kendi dahili ve şaşırtıcı derecede hızlı belleğine sahip olacak. Diğer taraftan, GPU hala G/Ç'ye erişim konusunda hakemlik yapmaktan sorumlu olacaktır.

Image
Bu sistemin bellek düzeni.

Sonuç olarak iki ana otobüsle organize edilen bir sistem ortaya çıktı:

Ayrıca, bu tasarım daha fazla belleğin bulunabileceği ek (ancak alışılmadık) bir veri yolu içerir:

Genel olarak bu, ARAM'ın önemli miktarda RAM sağlarken, ses tamponu olarak hareket etmek veya belirli aksesuarlar tarafından kullanılmak gibi daha az kritik görevlerle sınırlı olacağı anlamına gelir (G/Ç bölümünde açıklanmıştır).

ARAM'dan en iyi şekilde yararlanmak

Şimdiye kadar, kağıt üzerinde bellek özelliklerinin selefinden şüphesiz daha üstün olduğunu gördük, ancak hala iyileştirme için yer var. Örneğin Nintendo, ARAM'ı CPU'nun bellek haritasına dahil etmek için daha fazla donanım takabilirdi.

İlgili bir not olarak, Gekko'da kullanılan MMU'yu tekrar gözden geçirelim. CPU, 32 bit adres veri yolu ile 4 GB'a kadar belleğe erişebilir, ancak sistem bu miktarın yakınında bile değildir. Bu nedenle, boş (ve tahmin edilemez) bellek adreslerini açığa çıkarmamak için, 'sanal bellek' adresleme varsayılan olarak etkinleştirilir ve fiziksel adresleri daha güvenli, kolayca önbelleğe alınabilir ve sürekli bir 'sanal' adres haritası ile maskelenir .

Bu işi yapmak için, Gekko (ve diğer PowerPC mimarileri) sanal adresleri fiziksel adreslere aşağıdaki işlemle çevirir:

  1. Block Address Translation (BAT) gerçekleştirin: Her bir çiftin bir sanal adres aralığını sürekli bir fiziksel adres aralığına eşlediği sekiz çift programlanabilir kayıt vardır (dördü veri ve dördü talimatlar için). MMU, bu aralıklar içinde bulunursa fiziksel adresi bulmaya çalışır.
  2. BAT işe yaramadıysa, Page Table'ı okur: MMU ayrıca sayfaların fiziksel konumunu (sanal adres blokları) kataloglayan bir tablo da saklar.
    • MMU'nun bir sayfa tablosunu okuması zaman alabilir, bu nedenle son okumaları önbelleğe almak için bir Translation look-aside buffer (TLB) eklenmiştir.
    • X86 veya MIPS gibi diğer mimariler de sayfalama sağlar, ancak hepsi bir TLB sunmayacaktır.
  3. Son olarak, istenen sanal adres hala çevrilemiyorsa, MMU CPU'da bir 'sayfa hatası' istisnası tetikler ve işletim sisteminin bundan sonra ne yapacağına karar vermesini sağlar.

Peki bunun geliştiriciler için ne faydası var? Nintendo'nun Aram kullanarak ana RAM'i sayfalama yardımıyla genişleten bazı kütüphaneler yayınladığı ortaya çıktı. Özetlemek gerekirse, ARAM adreslenebilir değildir, ancak CPU buradan veri almak ve depolamak için DMA'yı çağırabilir. Böylece CPU, diğer kaynaklara yer açmak için sayfaları ana RAM'den taşıyabilir ve bunları geçici olarak ARAM'de depolayabilir. Daha sonra, bir sayfa hatası oluştuğunda, işletim sistemi ARAM'deki eksik sayfaları aramak ve bunları ana RAM'deki orijinal konumlarına geri yüklemek için rutinler içerir.

Sonuç olarak, bazı akıllıca hilelerle, bu genel amaçlı yetenekler GameCube oyunlarının teknik olarak izin verilenden daha fazla bellekten yararlanmasını ve böylece daha yüksek kalite seviyelerine ulaşmasını sağladı. Ancak, bu tür hilelerin bazı performans cezalarıyla birlikte gelebileceğini akılda tutmak önemlidir (özellikle de hafife alınırlarsa).


Previous: 2. Hızlı bir giriş

Next: 4. Grafikler


Rodrigo Copetti © 2026 RSS Feed

Modern baskıya geçin

Ana sayfa · Yazılar · Destek · Yazar hakkında · Web sitesini hakkında