好了,我们回到实际的架构上,现在让我们看看游戏是如何构建你所看到和听到的画面和音乐的。
该系统使用定制版的NEC V810,其工作频率达到了惊人的20 MHz(如果说SNES的平均工作频率为1.79 MHz,GameBoy为4.19 MHz,那么我已经迫不及待地想知道你能用它做什么了!)。 任天堂之所以称它为NVC,是因为Virtual Boy所配备的处理器是一个V810内核与一些附加组件的组合(详情即将公布)。
V810是NEC为嵌入式市场设计的V800 CPU系列的一部分 。 虽然这种CPU不像竞争对手(如MIPS、6502、Z80)那样受欢迎,但它确实带来了许多尖端功能,特别是:
- 32个32位寄存器: 这是一个完整的32位CPU,寄存器与之完全一致。
- V800系列ISA: 混合16位和32位指令的RISC指令集。
- 32位地址总线: 允许访问高达4 GB的内存,这在当时是一个巨大的空间。
- 五级流水线:这里是之前对指令流水线的解释。 值得一提的是,其他系统首次亮相时只有三级流水线,而这款系统直接采用了五级流水线!
- 1 KB L1指令高速缓存(L1 Cache) 。
- 在约10年后的任天堂DS出现之前,任天堂不会再推出"带缓存的"掌机!
对于1995年的便携式游戏机来说,这已经非常了不起了。 但如果这还不够,任天堂还增加了额外的资源:
- I/O接口: 这些接口将与专有配件通信的任务下放给了任天堂。
- 16位外部总线: V810可以配置16位或32位总线。 任天堂的工程师选择了前者。
- 在32位内存传输时,这将带来一些限制(等待状态),但你很快就会明白为什么程序不会有那么高的要求。
- 计时器:这只是一个16位计数器。
- 等待控制:根据访问的外部总线来停滞CPU。 这是因为V810认为所有内容都来自同一内存块,但实际上,访问游戏ROM比访问内部RAM要慢。 因此,这个组件可以修正时序。
所有这些看起来都很好,但成本也很高:六节AA电池(译注:5号电池)。 这也许可以解释为什么公司倾向于在便携设备上使用旧技术,至少在90年代是这样。
内存访问
32位地址在纸面上看起来非常诱人,但如果系统不会使用任何接近4 GB的内存位置,那么它就是一种巨大的资源浪费。 例如,尽管上层地址线不会改变,但每次读取内存时仍要对其进行解码。
因此,出于充分的理由,任天堂将地址减少到了27位。 这意味着最多可以访问128 MB的内存。 32位字仍然用作指针,但上面的5位被舍弃。 因此,内存映射的某些部分将被镜像。
尽管如此,内存映射布局允许CPU访问构成该系统的大部分组件。 这包括 :
- 64 KB RAM(称为"WRAM"),用于一般用途。
- 卡带ROM和RAM(如果包含)。
- 声音芯片
- 图形芯片及其专用内存。
- I/O及其各自的寄存器。
CPU 到此为止,现在该看看你能用它做些什么了!