正如其紧密的竞争对手在 RISC 热潮中被各种选择淹没一样,世嘉也不得不经历选择新供应商的所有难题,这个供应商能够带来下一代游戏(包括那些具有"3D"功能的游戏)。 最后,该公司选择了一个新的CPU,其创造者正在拼命寻找采用者,即日立的 SuperH或"SH"。
虽然最初专注于嵌入式应用,但日立的新产品展示了现代技术,例如 :
- 加载存储架构,这意味着指令不会混合内存和寄存器操作,从而实现更清晰和可扩展的CPU设计。 这正是RISC CPU的支柱之一。
- 32位数据总线和ALU,能够在不消耗额外周期的情况下移动和操作大量数据(32位值)。
- 16个通用32位寄存器,是摩托罗拉68000等以前CPU数量的两倍。 这是源自RISC指南 的另一个设计决策。
- 32位地址总线,最多允许寻址4 GB内存(告别映射器)。
- 具有五个阶段的流水线数据通路:指令的执行现在分为五个步骤或阶段。 CPU将排队最多五条指令,每条指令都在一个阶段分配。 这允许在不空闲的情况下利用所有CPU的资源,同时增加每单位时间执行的指令数量。
- 16位乘法单元:对16位整数执行乘法。
此外,SuperH具有一个名为SuperH ISA的新指令集,除了采用RISC设计外,它的所有指令都是16位宽的。 这令人惊讶,因为这款 CPU 是 32 位的,所以正常情况会预期指令具有相同的长度。 然而,日立设法用一半的尺寸来适应它的ISA。 这种格式不仅减少了程序的大小,而且由于CPU以32位批量获取指令,可以在一个周期内检索到两条指令。 总的来说,这种压缩指令集的技术有助于解决基于RISC的体系结构的一个常见问题,称为"代码密度",后者则需要更多的指令(当然,更多的内存)来执行与非RISC系统相同的任务。
分支
与之相反,RISC设计的其他缺点在SuperH中仍然存在,例如控制危害。 因此,程序需要包含分支延迟槽以避免计算错误。 为了解决问题,SuperH具有延迟分支指令,这些分支指令预装有延迟槽。
数据危害也存在,但程序员或编译器没有解决,CPU会在需要时自动停止管道处理。
世嘉不满意
然而,所有这些都没有阻止世嘉对最终产品表示不满。 这主要是由于16位乘法器较小,这在处理大量数据时被视为瓶颈(3D游戏的新需求)。 因此,日立将第二个修订版与扩展的乘法器单元和世嘉清单 上的其他要求相结合,从而产生了一个名为SH-2的新CPU。
即便如此,世嘉在听到其竞争对手选择的CPU后还是坐不住了。 因此,世嘉要求日立提高SH-2的时钟频率——一旦芯片已经投入生产,这就是一项不可能完成的任务。 幸运的是,日立还有另一个锦囊妙计:多处理器。 在SH的研究阶段,该团队添加了最小电路,以允许SH同时与同一系统内的其他SH一起工作。 听到这个消息后,世嘉决定为世嘉土星采用双芯片的配置。 其余就是些老黄历了。
最终产品
说完了来历,我们再来看看出货的产品。
这款游戏机采用了不是一个而是两个日立 SH-2的CPU,每个CPU运行在~28.63 MHz的频率 。 虽然两者在物理上相同,不过它们被设置成主从状态,其中第一个可以向第二个发送命令。 这可以实现一定程度的并行性,尽管两者共享相同的外部总线(这可能导致拥塞)。
日立包装了SH-2的不同变体,并将它们作为"SH7600"系列的一部分出售。 具备所有这些特性:
- 前述的五级流水线和SuperH ISA。 后者已经扩展了六个额外的专门分支和算术指令。
- 升级后的32位乘法单元,现在使用32位整数执行乘法。
- 在两个CPU之间共享的32位外部数据总线。
为该游戏机选择的特定芯片"SH7604"包含以下附加内容:
- 4 KB缓存:存储以前从内存中获取的少量指令和数据,用以加快未来的读取速度。
- 32位除法单元:使用32位整数执行除法。
- 内部DMA控制器:无需CPU干预即可从内存中传输数据。
- 支持Little endian(小端模式),使 CPU 能够理解以相反顺序编码的值。 当外部内存与其他处理器共享时,这将很有用。
值得指出的是,拥有两个CPU并不意味着游戏的运行速度会提高一倍!而且在实际情况中,需要非常复杂的编程来有效地管理共享同一总线的CPU。 因此,如何有序使用缓存在这款游戏机中也起着关键性的作用。
分裂的内存选择
世嘉土星总共包含2 MB的RAM用于通用用途,称为工作RAM(WRAM)。 现在,这两兆被分成两个非常不同的块:
- 第一个提供1 MB的SDRAM,由于其快速访问速率,该块也称为"WRAM-H"。
- 另一个区块包含剩下的那一兆字节,但它被称为 'WRAM-L',因为它使用的是 DRAM(动态随机存取存储器),从而导致较低的数据速率。
第三个处理器(甚至更多)
令人惊讶的是,这两个SH-2 CPU似乎对世嘉来说还不够。 因此,为了加速矢量处理(以更复杂为代价),游戏机还容纳了一个额外的协处理器,即土星控制单元或"SCU"。
这是一个由两个模块组成的芯片:
- DMA控制器:在三个主要总线之间仲裁对 WRAM 的访问,无需 CPU 干预。
- DSP:用作定点"几何单元"。 与SH-2相比,它可以更快地进行矩阵/向量计算,例如3D转换和光照。 但是,它以半速运行,其指令集更复杂。 此外,它还依赖SH-2的WRAM来获取和存储数据(使用DMA)。
好的一面是,SCU带有32 KB的SRAM供自身使用。 不好的一面是,SCU无法访问WRAM-L。
