R800 (CPU) - R800 (CPU)

R800

R800 bir merkezi işlem birimi içinde kullanılan MSX Turbo-R ana bilgisayar . R800, ASCII Corporation of Japan tarafından tasarlanmış ve Mitsui & Co., Ltd. tarafından yapılmıştır . Amaç, eski MSX Z80 tabanlı donanımla uyumluluğu korurken, Z80 ve dolayısıyla MSX yazılımı ile uyumlu modern ve ardışık düzenlenmiş bir CPU ikili programıydı .

Uyumluluk

MSX Turbo R'nin geliştirilmesi sırasında ASCII Corporation, Z80 ile uyumlu ve uyumsuz çeşitli işlemcileri aday olarak değerlendirdi. O zamanlar, bir şirket çalışanı olan Kazuya Kishioka ( 岸 岡 和 也 ) , Z80'in yüksek hızlı versiyonu olan ve büyük ölçüde MSX mimarisi için özelleştirilmiş bir ASIC araştırıyor ve geliştiriyordu .

Eski MSX yazılımıyla yazılım uyumluluğu için R800 , Z80 ile aynı komut setini kullanır, yalnızca küçük ama yararlı eklemelerle, örneğin 8x8-bit ve 16x16-bit çarpma komutları olan MULUB ( 8-bit ) ve MULUW ( 16- bit ). Ayrıca, IX ve IY'yi 8 bitlik kayıtlar (IXH, IXL, IYH, IYL) olarak ele alan talimatlar için tüm işlem kodları dahil olmak üzere, belgelenmemiş Z80 talimatlarının çoğu resmi hale getirildi .

R800, doğrudan Z80'i temel almadığı, ancak Z800 ailesinden geldiği için, diğer bazı belgelenmemiş Z80 özelliklerinden yoksundur. Örneğin, F yazmacının 3. ve 5. bitlerinde gösterilen belgelenmemiş bayraklar, Z80'deki ile aynı değerleri kabul etmez ( ZEXALL testlerinde başarısız olmasına neden olur ) ve genellikle SLL olarak adlandırılan belgelenmemiş işlem kodu, SLA talimatının sadece bir takma adıdır.

Donanım değişiklikleri

Çok daha yeni bir tasarım olan R800 uygulaması, elbette eski Z80'den oldukça farklıydı. Değişiklikler , Z80 uyumlu işlemcilerin Z800 , Z280 , Z380 ve eZ80 serilerine benziyordu . Orijinal Z80, dahili olarak alışılmadık bir 4-bit ALU donanımı kullanır; bu, tam donanımlı 8-bit ALU mantığını (örneğin, öncüsü Intel 8080 ) kullanarak benzer CPU'larla rekabet edebilen bir çözümdür . Bununla birlikte, R800 tasarımcıları , daha fazla ardışık düzen yürütmesine ayak uydurmak için tam bir 16 bit ALU uyguladılar . Z80'de 11 saat döngüsü alan ADD HL, BC gibi komutlar, bu tam genişlikteki ALU ile mümkün kılınan boru hattı derecesine bağlı olarak, bazı durumlarda R800'de bir veri yolu döngüsü (1-2 saat) kadar kısa sürede yürütülebilir. Bu yeni MSX'te kullanılan maksimum CPU saat hızı 14.32 MHz idi - eski MSX'te kullanılan orijinal 3.57 MHz hızından dört kat daha hızlıyken, veri yolu saati 7.16 MHz'e yükseltildi. Veri yolu eski donanım uyumluluğu korumak 8-bit kalmıştır.

İşlem kodları alınıyor

CPU'nun işlem kodlarını alma biçiminde ek değişiklikler yapıldı . Orijinal Z80, OR A gibi basit bir talimatı almak için iki döngü ve ayrıca yenileme için iki döngü kullanır. MSX mimarisinde ek bir bekleme durumu yayınlanır. Tipik bir MSX ortamındaki getirme mekanizmasının gözden geçirilmesi, R800'ün açıklanmasına yardımcı olur:

  • Z80, döngü 1: 8 bitlik adresin daha yüksek olanını ayarlayın
  • Z80, döngü 2: alt 8 bitlik adresi ayarlayın
  • Z80, döngü 3: bekleme durumu
  • Z80, döngü 4: yenileme, bölüm 1
  • Z80, döngü 5: yenileme, bölüm 2

MSX'in çoğu uygulaması 256 × 256 baytlık bir bloğa yerleştirilmiş RAM belleği kullandığından , getirme için adresi ayarlamak için iki döngü gerekir. R800, daha yüksek 8 bitin bilinen son durumunu hatırlayarak bunu önler. Bir sonraki komut aynı 256 baytlık sınırlar içindeyse, daha yüksek olan 8 bit ayarlanmaz ve bir döngü kaydedilir. Bununla birlikte, Z80'de, yenileme döngüleri daha yüksek bitlerdeki bilgileri yok eder, bu nedenle bir geçici çözüm gerekliydi.

R800'de kullanılan çözüm, verilen her komutta bir satır RAM yenilemek yerine tüm RAM bloklarını yenilemekti. Her 30 μs'de CPU 4 μs için durdurulur, bu sefer RAM'in bir bloğunu yenilemek için kullanılır. Getirme talimatları arasında yenileme olmadığından ve daha hızlı RAM yongaları nedeniyle bekleme durumu kaldırıldığından, basit talimatlar yalnızca bir döngü kullanılarak verilebilir. Bu döngü, yukarıdaki Z80 örneğinde 2. döngü olacaktır; 1. döngü isteğe bağlı hale gelir ve yalnızca program 256 baytlık bir sınırı geçtiğinde verilir.

Harici donanım

Bütün bunlar yalnızca MSX Turbo-R'de kullanılan hızlı RAM için geçerlidir. Kartuş yuvaları aracılığıyla bağlanan harici donanım, Z80'e benzer zamanlamaları kullanır. Turbo-R'nin dahili ROM'u bile bu getirme şeması için yeterince hızlı değildir, bu nedenle Turbo-R'deki ek yongalar, daha hızlı çalışmasını sağlamak için ROM içeriğini RAM'e yansıtabilir.

Referanslar

daha fazla okuma