« SMS(Sega Master System)主机架构 (index)

SMS(Sega Master System)主机架构

Chapter 4: 中央处理器 (CPU)


目录

  1. 相对比较
  2. 可用内存
  3. 访问其它组件
  4. 向后兼容性

世嘉决定采用全功能的Zilog Z80CPU,运行频率约为3.58 MHz。 一个受计算机厂商欢迎的选择,如Spectrum、Amstrad或Tandy。

Image
2019年6月我到访加州山景城的计算机历史博物馆时,见到的美国Tandy TRS-80电脑(1977年款)。

Image
英国 Sinclair ZX80(1980)。 比它看起来要小得多! 克里斯托弗·里维特(Christopher Rivett)的收藏品的一部分 。

世界各地配备Z80 CPU的流行计算机。

Z80中央处理器有一个有趣的背景,因为它是由英特尔8080的创造者(费德里科·法金和岛正敏)创作的,他们由于对英特尔的方向不再抱有幻想,并决定在1974年创办自己的硅公司——齐洛格(Zilog)。 他们首次推出的产品可以被认为是英特尔8080的非官方继任者,其具有以下特性:

文章开头的主板图片显示了一颗 NEC D780C-1 CPU,这只是世嘉将芯片交由不同厂商代工的结果,其他版本甚至包含了由 Zilog 制造的芯片。 但对于本文而言,不论 CPU 是哪家制造的都不重要,因为其内部特性保持不变。

相对比较

请注意,NES 中搭载的 6502 CPU 运行频率仅为约 2 MHz。 这大约只有SMS芯片运行速度的一半。 再加上 Z80 拥有更大的寄存器文件,人们可能会认为SMS的性能毫无疑问地超越 NES。

相反,如果我们深入探究,会发现 6502 拥有一个更大的(8 位)ALU。 因此,在 6502 上只需两个周期完成的算术操作,在 Z80 上则需要消耗四个周期。 归根结底,这说明像 CPU 时钟频率或寄存器文件大小这样的相对特性,如果孤立地分析,可能会产生误导。 Z80 和 6502 在不同的任务上各有优势和劣势,最终取决于程序员的本事。

可用内存

正如前面所述,Z80 拥有 16 位地址总线,这意味着 CPU 可以寻址高达 64 KB 的内存。 在SMS的内存映射中,你会发现有 8 KB 的 RAM 供通用用途使用,这部分内存还被镜像到另外一块 8 KB 区域。 最后,最多可映射 48 KB 的游戏 ROM

访问其它组件

从上一段我们可以了解到,主 RAM 和部分卡带 ROM 是唯一出现在地址空间中的组件,那么程序如何访问其他硬件呢? 与任天堂的 Famicom/NES 不同,SMS并非所有的硬件都是通过内存地址映射的。 相反,一些外设位于 I/O 空间中

这是因为 Z80 家族包含了一个有趣的功能称为 I/O 端口,它使得 CPU 可以与其它硬件通信而不占用内存地址。 为此,存在一个专门用于"I/O 设备"的地址空间,称为端口,并且这些端口与内存共享相同的数据和地址总线。 不同之处在于,端口是通过 INOUT 指令来读取和写入的——而传统的载入/存储指令 (LD) 则不适用于此。

当执行 INOUT指令时,Z80 设置地址线指向特定的外设(例如键盘),并标记其 IORQ 引脚表示已发起 I/O 请求,最后根据是 IN 还是 OUT 指令分别标记 RDWR 引脚。 被寻址的外设必须手动检查地址总线和 I/O 引脚,并执行所需的操作。 在执行 IN 指令的情况下,CPU 将接收到的值存储在一个预定义的寄存器中。

Image
SMS的寻址布局。

世嘉这种 CPU 与其余组件互联的方式不仅使得可以访问其数值,还可以选择性地显示或隐藏某些组件,使其不出现在内存映射中。

有趣的是,GB(Game Boy) 使用了一种省略了 I/O 端口的 Z80"变体"。 因此,它不得不将所有东西都放在内存映射中。

向后兼容性

这台游戏机的架构与其前身 Sega SG-1000非常相似,因此SMS实现了与 SG-1000 的向后兼容性。 不过,这一点仅适用于日版机型,因为其他版本使用了不同的卡带插槽。


Previous: 3. 型号和变种

Next: 5. 图形


Rodrigo Copetti © 2026 RSS Feed

切换至现代版

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