Dreamcast架构:实际分析

2021-02-24 21:41:04

Sega Dreamcast在其前身(土星)上引入了许多新功能,以吸引游戏开发商和主机游戏玩家。尽管这是Sega征服游戏机市场的最后一次尝试,但Dreamcast率先采用的某些技术一直运用于未来的主流设备中。

毫不奇怪,世嘉再次选择了日立来开发他们的CPU。如果您一直在阅读有关Sega Saturn的上一篇文章,那么,请看,我为您介绍了下一代SH处理器:SH-4的运行频率高达200 MHz。那么,这个CPU有什么有趣的地方?

5级流水线:最多可以同时执行5条指令(详细说明可以在上一篇文章中找到)。指令流水线现在在这一代控制台中随处可见,并且从现在开始将成为标准。

2向超标量:一种新型的并行机制,其中CPU在流水线的每个阶段可以处理多于一条指令(在这种情况下为两条),导致每秒执行更多的指令。

专用的浮点单元或“ FPU”:计算32位十进制数字(浮点数)和64位十进制数字(双精度数)。

8 KB指令高速缓存和16 KB数据高速缓存:这个比率相当奇怪,因为控制台往往比数据高速缓存包含更多的指令高速缓存。但是,SH-4允许将数据缓存分为两个部分:8 KB的Scratchpad(快速RAM)和8 KB的数据缓存。

32位内部体系结构,同时保留16位指令集(SuperH ISA):与SH-2一样,它在保持32位体系结构优势的同时,提高了代码密度并降低了总线开销。

外部64位总线:用于操纵64位值(例如双打和龙)的关键,而不会浪费额外的周期。

游戏控制台CPU的常见琐事包括处理游戏的逻辑,运行敌人AI并将GPU与指令保持联系。在Dreamcast中,SH-4也参与了大多数图形管道,处理几何数据,例如计算透视变换。结果,它包括一个128位SIMD单元,可以加速矢量操作。

CPU包括用于虚拟寻址的专用内存管理单元或“MMU”,这是有帮助的,因为该CPU的物理内存地址空间恰好是29位宽。因此,在四个TLB的帮助下,程序员可以使用32位地址而不击中性能惩罚。

由于寻址只需要29位,因此额外的三位控制内存保护,分别交替存储器映射并绕过高速缓存。

程序员决定是否使用这些功能。此系统的游戏肯定不一定需要内存保护,并且必须在启动时手动启用MMU。

虽然此系统围绕严格的统一内存架构围绕着众所周知的竞争对手设计,但它确实委派了I / O访问GPU。这意味着,如果CPU必须获取任何超出其自己的专用RAM或也连接的串行接口的任何东西,则必须请求GPU(并在必要时等待)。

此CPU还具有唯一的功能,称为并行I / O或“PIO”,用于同时操作多个I / O位置。 SEGA连接了这些引脚,以便CPU可以操纵GPU的视频模式(稍后有关此详细信息)。

GPU封装是一种定制的名为Holly的芯片,其运行频率为100 MHz,由VideoLogic(现称为Imagination Technologies)设计,由NEC制造。 Holly的3D核心恰好是Videologic的PowerVR2(也称为“ PowerVR Series2”和“ CLX2”)。

VideoLogic选择了一种替代方法来构建其3D引擎,称为“基于图块的延迟渲染”或“ TBDR”。

TBDR不会一次渲染整个框架(如传统的即时模式渲染器或“ IMR”那样),而是将渲染区域分为多个部分,称为“平铺”。然后,它分别在每个图块上执行渲染过程,并将结果合并以形成最终帧。

它通过自动从前到后对多边形进行排序,然后在管道的第一阶段执行z测试来实现对可见性问题的巧妙解决方案。这些任务的结合不仅解决了原始问题,而且还防止了浪费资源,降低性能的透支(隐藏多边形的栅格化)。

毫不奇怪,Imagination将这项高效技术推向前进,以构建Series 4 PowerVR内核,该内核可为众多设备提供支持,包括第一代iPhone,iPhone 3G,诺基亚N95和Dell Axim x51。

让我们看一下Dreamcast GPU的两个主要组件:

在渲染过程开始之前,称为Tile Accelerator的组件将进行预处理。首先分配几个32x32的图块仓,将几何图形渲染到其中。

抓取CPU发出的几何数据和绘图命令(使用DMA或传统传输)。

根据其仓位将几何分布到每个仓位。裁剪的几何也将被丢弃。

在这里将图形变为现实,从TA收到的显示列表将用于使用内部帧缓冲区来渲染单个图块的几何形状。流程如下:

图像合成处理器或“ ISP”会提取图元(三角形或四边形)并执行“隐藏表面删除”操作,以删除看不见的多边形。然后,在计算完其Z缓冲区和模板缓冲区后,数据将进行深度测试以避免渲染将出现在其他对象之后的多边形,并且将模板测试剔除掉位于2D多边形之后不可见的几何体(也称为面具)。注意在管道开始时如何有效地执行这些测试。相反,以前使用z缓冲区的控制台将在管道末端丢弃几何图形。 ISP方法阻止处理最终将被丢弃的几何图形,从而节省了资源。

纹理和阴影处理器或“ TSP”在图块区域上应用颜色和阴影。它还提供多种效果(稍后会有更多详细信息)。在导出图块之前不会应用纹理,这意味着出现的透支(如果有)不会降低填充率。

操作完成后,将渲染的图块写入VRAM中的主帧缓冲区。重复此过程,直到完成所有图块。完成后,视频编码器将选择结果帧缓冲区,并通过视频信号发送。

除了明显的体系结构差异外,“纹理和阴影处理器”还具有许多功能,使您可以了解此控制台与旧的Saturn之间的距离。这里有一些:

Alpha Blinding:结合重叠层的颜色来实现透明度效果。用于在该系统中应用透明度的过程称为有序无关的透明度。算法在混合颜色之前自动对原语进行排序,虽然这会减慢渲染过程,但它避免依靠游戏本身进行手动进行所有排序。出于这个原因,Dreamcast游戏表现出透明对象。

MIP映射:根据所需的详细信息,自动选择尺寸的纹理版本。这样做是为了防止处理远离相机的大纹理(这将是浪费处理能力并产生混叠)。

双线性,三线性和各向异性过滤:这些是用于平滑纹理的不同算法并防止像素。它们是从“最糟糕”的“最好”的命令,其中每个人的质量与所需的计算量成正比。这是从原始的巨大的一步,因为前者没有提供任何纹理过滤器!

霍莉现在可以比其前任绘制〜10倍多边形,这是一个之前的前身。在示例之后,显示模型设计如何不再有限。试着让他们摆弄!

视频系统旨在支持多种类型的屏幕和格式,因此视频编码器输出到一个支持以下类型的信号的单个插座:

复合材料:将显示视频(色度,亮度和同步)所需的三个信号组合成一个单个引脚电缆。

RGB:发送单独的红绿蓝信号,并提供不同的同步类型可供选择(复合同步或从视频复合或S-Video中提取)。

VGA:将RGB与两个特殊的同步信号(水平和垂直)组合在一起,总共产生了五条视频线。这样就可以在逐行模式下显示最大分辨率(720x480)(因此,该模式通常称为“ 480p”)。 VGA实际上一直是计算机显示器使用的标准格式/媒介。

现在,Dreamcast不能同时对所有这些进行编码,因此GPU和音频处理器包含一个称为“图像模式”的寄存器,该寄存器协调将激活所需的视频/音频总线以生成请求的信号。 CPU检测插入的电缆类型(通过检查视频连接器的哪些选择位处于活动状态),并将所需的值写入GPU,然后将其转发到音频处理器。

由于VGA严格来说是一种渐进式信号(与传统的隔行扫描相反),因此仅针对隔行视频设计的游戏出现了一些兼容性问题。这些会在代码中明确声明不会在VGA上显示的代码,因此CPU会阻止游戏,直到用户将VGA电缆换成另一种类型为止。

GPU还包括另一个用于处理大多数I / O的模块,称为系统总线。它提供以下接口:

G1接口:可以访问BIOS ROM及其保存的配置和GD-ROM内容。

Maple接口:在控制器(及其连接的附件)和CPU之间传输数据块。它是串行总线,并提供专用的DMA。

DDT接口:在DMA传输期间控制CPU总线以访问其主存储器。

音频功能由一个名为AICA制作的自定义芯片处理,它是SCSP中使用的改进版本,并由四个组件组成:

声音集成电路或“IC”:一组模块(合成器,DSP和混频器),产生音频信号并对其应用效果。它最多支持64个PCM通道,分辨率为16或8位,采样率为44.1 kHz(总的来,这是播放音频的最佳质量)。好奇地,它还包括两个MIDI引脚,以连接MIDI仪器,尽管这是在开发期间使用的。

2 MB的SDRAM:存储声音数据和程序。它可以使用DMA由主CPU填充。

在〜2.82 MHz上运行的ARM7DI:控制声音IC。该CPU通过引导存储在SRAM中的小软件(由主CPU发送),这将允许其解释音频数据并相应地操纵声音IC。

自从Mega驱动器/创世纪的日子以来,我们已经到目前为止,以展示在合理的合成中取得了多少进展,这是两个游戏的一个例子,一个用于Mega Drive,另一个用于Dreamcast的另一个游戏。相同的成分:

不知何故,该芯片也负责为BIOS提供实时时钟或'RTC',它还连接到时钟电池,以继续工作而没有交流电源。

在控制台的寿命期间,有两个不同的操作系统可以在Dreamcast上运行:

2 MB的“System Rom”存储一个BIOS,当控制台打开时运行一个小弹壳。

它包含一个简单的图形用户界面,以允许用户执行基本但必要的任务,如:

自从Dreamcast的公告以来,据说它会运行Windows CE:旨在用于嵌入式设备的剥离版Windows。这可能误导了可能预期在控制台上运行的Windows CE桌面环境的用户。

实际上,这个系统的目的与任天堂与任天堂64做的事情非常相似:为提供具有公平抽象层的程序员来简化某些操作。

微软与SEGA合作,将Windows CE带到Dreamcast。结果是CE的子集,具有提供图形,音频,调试和与软件如Microsoft Star IDE:Visual Studio等软件所需的最小组件。

一些开发人员发现这非常有吸引力。由于CE附带的音频图形框架不是DirectX 6,因此,在理论上,成千上万的PC游戏可以轻松移植到DreamCast& MLDR

然而,Dreamcast和传统PC之间的架构差异太大而无法忽视。此外,嵌入这个系统增加了游戏的加载时间(毕竟,'OS'必须从光盘加载)和Windows CE发生在梦幻广播公司的大量资源(毫不奇怪,PC已经遭受了那种)。

最终,Windows CE只为开发人员提供了另一种选择,以嵌入游戏中。尽管如此,最终是使用Windows API和AMP编写的相当数量的Dreamcast游戏; Directx。

开发主要在C或C ++中完成:首先,C是推荐的选择,因为可用的C ++编译器最初在功能中非常有限。

SEGA还提供了一个名为SEGA Katana开发盒的PC的塔形式的开发硬件。这是Dreamcast硬件,具有增强的I / O开发。它还具有包含官方Katana SDK的CD,可安装在Windows PC上。

在案例开发人员中选择了Windows CE作为主框架(通过切换到Dragon SDK),他们也有DirectX 6.0和Visual C ++ 6.0可用于制作他们的游戏。

游戏存储在GD-ROM中,这只是CD-ROM具有较高的凹坑密度(达到容量的千兆字节)。与土星的2倍CD读卡器相比,速度为12倍,这不是太破旧。

Dreamcasts附带了一个调制解调器模块,安装了哪些游戏可以用于“致电”在线游戏的拨号服务,SEGA提供了两种服务:Seganet(在美国和日本使用)和DreamArena(欧洲对准)。

玩家必须通过使用一些名为Dreamkey的游戏附带的额外光盘首次注册服务,它提供了一个用于注册一个帐户的Web浏览器.IniLientaly,梦键根据该区域进行预先配置的服务,稍后允许用户进行预先配置的服务更改其ISP设置以连接到其中任何一个。

还有一个专门的Dreamcast品牌键盘和鼠标可供购买,以防用户在PC上欣赏互联网。

不幸的是,塞奈特和梦幻博纳在发布后两年后停止,除非使用额外的工具(如Dreampi,rashbery pi映像是roaspery pi映像,否则Seagers和Dreamarena在发布后依赖于它们的游戏是无法使用的,除非使用额外的工具用户)。

Dreamcast包括的另一个创新功能是Visual Memory Unit或'VMU'。它附加到控制器,除了用作存储卡之外,是否包括一个完全成于剥离的设备,包括:

具有四个附加图标的32x48单色LCD:使用196b XRAM(外部RAM)作为帧缓冲区命令。

64 KB的Flash:32 KB用于存储单个程序(从控制台传输),另外32 KB用于保存Dreamcast的保存。

512 B RAM:256 B为系统保留,仅留下256 B可供计划。

附加到控制器:官方控制器有两个插槽,可以连接VMU和具有相同形状的其他配件,如果VMU插入第一个插槽(从控制器的正面可见),则VMU可以在游戏过程中显示一些图纸。此外,Dreamcast可以在VMU上存储节省和程序。

从控制器中分离:小工具是一个带有时钟,保存管理器的Tamagotchi的设备,也可以运行Dreamcast先前传输的任何程序。两个VMU也可以连接到共享内容。

使用专有的GD-ROM格式有助于禁止生产未经授权的游戏副本[并在其他控制台上运行它们]。 Dreamcast Games也是区域锁定的含义,控制台将拒绝运行针对不同区域的游戏。

在实践中,由于SEGA留下了巨大的后门开放,反盗版措施完全没用:MIL-CD。音乐交互式Live-CD或'MIL-CD'是SEGA创建的格式,以扩展互动程序和amp的音频CD; MLDR和Dreamcast与它兼容。

现在,有人[谁?]发现,在管理撕裂GD-ROM的内容并修改其格式以遵守MIL-CD时,将其刻录到传统的CD并将其放入Dreamcast中。这导致了不可阻挡的烧坏圆盘和ISOS在网上释放。

之后一些问题浮出水面:虽然GD-ROM可以存储千兆字节的数据,CD-ROM只能适合〜700 MB,所以如何“旋转者”缩小更大的游戏以适应CD吗?通过重新压缩音乐和图形,直到它适合。他们甚至可能会尝试将其分成两张光盘。毕竟,游戏数据不是单个Blob在旧盒式磁带上,但现在分层组织成文件和目录。

我希望你喜欢阅读这篇文章。我在Uni最后一年的最后一年开始时写了它。

从现在开始,我可能会非常忙碌,但我喜欢写这些文章,如此希望你会在几个星期内得到下一个!

本文是控制台系列架构的一部分。如果您发现它有趣,请考虑捐赠,您的贡献将用于获取更多工具和资源,有助于提高当前文章和即将到来的工具。

以下在此处跟踪了本文所需的工具和最新收​​购列表:

##有趣的硬件得到(优先订购) - 没有别的,除非你有一些值得回顾的东西,除非你使用的东西使用了使用的工具 - 一种带有控制器和VMU的梦幻般的控制台(40英镑) - 游戏(Sonic Adventure,9英镑)

## 2020-09-13 - 常规改造语法修复和其他调整,谢谢@DPT。 ## 2020-04-10 - 扩展隐藏表面清除部分。 ## 2020-03-01 - 纹理效果和音频处理的更多内容。 ## 2019-10-24 - 添加了一些3D模型来小提琴。 ## 2019-10-09 - 关于GPU透明度,塞赛特和SDK的校正+添加,谢谢/ r / Dreamcast! ## 2019-10-08 - 添加了SIMD核心## 2019-10-07 - 它的活力!