Bu konsolun içinde, Hudson Soft tarafından üretilen ve iki bileşeni barındıran bir çip olan HuC6280'i buluyoruz. One of them is the CPU, which can operate at two speeds: ~1.79 MHz and ~7.16 MHz.
HuC6280, Z80 gibi hazır bir bileşen değil, NEC tarafından tasarlanmış özel bir CPU'dur. Resmi dokümanları inceledikten sonra, ünlü MOS 6502 ve WDC'nin 65C02'sinin birçok davranışını kopyaladığı görülüyor. Bununla birlikte, tüm bunlar yazılımcı için ne anlama geliyor?
Başlamadan önce, MOS 6502'nin bazı parçalarını NES makalesinde zaten ele aldık ve ayrıca WDC ve Ricoh tarafından yapılan 16 bitlik bir varyantı SNES makalesinde anlattık, belki önce bunlara bir göz atmak isteyebilirsiniz.
65C02, Western Design Center tarafından üretilen MOS 6502'nin değiştirilmiş bir başka versiyonudur, üretim yaklaşımı (CMOS) nedeniyle çok daha verimlidir. Yazılım tarafında, 65C02 birkaç yeni talimat ekler ve bazı mevcut talimatların davranışını değiştirir .
65C02 hakkında çok daha fazla konuşabiliriz, ancak Hudson tarafından eklenen (65C02'yi tamamlayan) özelliklere odaklanmanın daha iyi olacağını düşünüyorum çünkü bunlar bu konsolu verimli bir şekilde çalıştırmak için kritik öneme sahip. 65C02 ile karşılaştırıldığında, HuC6280 :
- Bazıları CPU'yu çevreleyen bileşenleri hedef alan daha fazla opcode.
- Harici bileşenleri arayüzlemek için kullanılan bir 8-bit I/O portu.
- Diğer cihazlardan gelen kesintileri almak için bir interrupt controller.
- Zamanlayıcı. Belirli bir değerden geriye doğru sayarak çalışır ve bittiğinde CPU'ya bir interrupt gönderir.
Son olarak, genel amaç için 8 KB RAM bulunmaktadır.
Bellek erişimi
Henüz bahsetmediğim bir şey de NEC'in CPU'nun yanına bir Memory Management Unit veya 'MMU' ekleyerek 21-bit adresleri işlemesini sağlamasıdır (orijinal 6502'nin yalnızca 16-bit adresleri olduğunu unutmayın) . Böylece erişilebilen bellek miktarı 64 KB'den 2 MB'a yükselir.
Bu MMU günümüz MMU'larından çok farklıdır, ilkinin bir mapper'a daha yakın olduğunu söyleyebilirim. Bununla birlikte, PC Engine'de bulunan MMU, 21 bitlik bir adres veri yolu oluşturmak için CPU'nun 16 adres hattıyla birleştirilen eight 8-bit register'dan (Mapping Register veya 'MPR' olarak adlandırılır) oluşur.
Bu şu şekilde çalışır:
- CPU, sırasıyla özel
TAMveTMAtalimatlarını kullanarak herhangi bir MPR'den okuyabilir ve/veya MPR'ye yazabilir. - Fiziksel belleğe erişildiğinde, MMU sekiz MPR'den birini seçmek için CPU'dan A13-A15 adres hatlarını ayırır.
- Nihai adres, CPU hatları (A0-A12'ye yerleştirilir) ile MMU hatları (A13-A20'ye yerleştirilir, burada çıkış seçilen MPR'nin 8 bitlik değeridir) birleştirilerek elde edilir ve 21 bitlik bir adres elde edilir.
Sonuç olarak, bu MMU fiziksel belleği 8 KB sayfalar halinde gruplandırır (13 CPU satırı = 8 KB sayfa), bu da CPU'nun MPR'yi değiştirmeden veya değerini değiştirmeden erişebileceği bellek miktarıdır.
Her neyse, anlamakta güçlük çekiyorsanız kendinizi bunaltmayın (bu sadece bazılarının ilginç bulabileceği alışılmadık bir yöntemdir).
