« PC Engine / TurboGrafx-16 架构 (index)

PC Engine / TurboGrafx-16 架构

Chapter 4: 中央处理器 (CPU)


在这台游戏机里,我们发现了HuC6280,这是一个由Hudson Soft制造的芯片,里面有两大组件。 其中之一是CPU,能以两种速度运作:~1.79 MHz~7.16 MHz.

HuC6280不像Z80那样是现成零件,而是由NEC设计的专用CPU。 查看官方文档之后,几乎可以确定它复刻了著名的MOS 6502WDC的65C02的很多行为。 如此说来,所有这些对程序员意味着什么呢?

在开始之前,我们已经在NES的文章中介绍了MOS 6502的一些部件,在SNES的文章中也介绍了由WDC和理光制造的16位变体芯片。如果你想,可以先看看。

65C02是西方设计中心(WDC)制造的MOS 6502的一个改进型,由于它的制造工艺(CMOS),运行效率要高出很多。 从软件方面,65C02增加了一些新的指令,并修改了一些现有指令的行为。

我们可以更多地谈谈65C02,但我认为最好还是重点讨论哈德森增加的功能(对65C02的补充),因为它们对有效操作这台游戏机至关重要。 与65C02对比,HuC6280有:

最后,有8KB的RAM可提供给一般用途。

内存访问

有一件事我没有提到,那就是NEC还在CPU旁边添加了一个内存管理单元或者叫"MMU",使其能够把持21位地址(记得原本6502只有16位地址)。 因此,可以访问的内存总量从64KB提升到2MB

这款MMU非常不同于现今的任何一款MMU,我会说前者更接近于一个mapper。 尽管这么说,PC Engine中的MMU是由八个8位寄存器(称为映射寄存器或 "MPR")组成,它们与CPU的16条地址线结合起来,形成了21位地址总线。

Image
MMU的寻址方法

它做了以下工作:

  1. CPU可以使用特殊的TAMTMA指令,分别从任何MPR读取和/或写入。
  2. 当物理内存被访问时,MMU保留了来自CPU的地址线A13-A15,来选择八个MPR其中的一个。
  3. 最终的地址,是由CPU线(置于A0-A12)和MMU线(置于A13-A20,输出就是所选MPR的8位值)结合而成,结果即21位地址。

因此,这款MMU将物理内存分组为8KB的页(13条CPU线=8KB页),这是CPU不借助交换MPR或改变其值,就能访问到的内存量。

不管怎样,如果你对它难以理解,就不要勉强自己(这只是一种非常规的工作方式,有些人可能觉得有意思)。


Previous: 3. 型号和变种

Next: 5. 图形


Rodrigo Copetti © 2026 RSS Feed

切换至现代版

主页 · 文章 · 支持 · 关于作者 · 关于此网站