« Nintendo 64 架构 (index)

Nintendo 64 架构

Chapter 6: 操作系统


与PS1和Saturn相似,N64游戏是为裸机编写的。 但是,没有可用的BIOS调用来简化某些操作。 作为替代,游戏嵌入了小型操作系统,它提供了大量的抽象层来有效处理CPU、GPU和I/O。

这不是我们最初想象的传统 桌面操作系统,它只是一个占据最小空间的微内核,提供以下功能:

总而言之,这些功能对于组织需要同时工作的音频、视频和游戏逻辑任务至关重要。

内核通过使用任天堂的库自动嵌入。 此外,如果程序员决定不包含其中一个库,内核的相应部分将被剥离,以避免卡带空间被浪费。

启动过程

与以前的卡带系统不同, Nintendo 64 遵循复杂的引导过程,在实际游戏运行之前准备好所有硬件。 用户一打开主机就执行此操作,这与基于CD的同时代产品捆绑BIOSIPL非常相似。

这些例程也称为初始程序加载(IPL),工作方式如下 :

  1. 用户打开主机。
  2. PIF-NUS (主板上的一个单独芯片) 将主CPU置于无限重置状态,直到PIF-NUS验证游戏卡带中的CIC芯片。
    • PIF-NUS和CIC芯片将在I/O和反盗版部分分别进一步介绍。
  3. 如果验证进程成功完成,CPU将在0xBFC00000处开始运行。 此地址指向PIF-NUS的一个内部ROM ,准确来说是名为IPL1的第一个引导阶段。
  4. IPL1初始化部分硬件(CPU寄存器、并行接口和RCP),并将下一阶段(IPL2)从内部ROM复制到RSP的内存,以加快执行速度。 然后,它将执行重定向到那里。
  5. IPL2 将游戏 ROM 的前一兆字节复制到 RSP 内存中,验证它(使用 PIF)并执行它。 这一部分包含下一个启动阶段,名为 IPL3
  6. IPL3初始化RDRAM和CPU缓存。 然后,它启动操作系统(即虚拟内存和异常向量),设置程序状态(即堆栈指针),最后继续调用游戏的启动例程。

由于IPL3位于游戏卡带中,并非每个游戏都捆绑了相同的代码。 据推测,这些变体与在卡带中捆绑的CIC芯片变体有关。


Previous: 5. 音频

Next: 7. I/O


Rodrigo Copetti © 2026 RSS Feed

切换至现代版

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