找回密码
 注册

QQ登录

只需一步,快速开始

楼主: n805

世嘉土星30周年纪念 世嘉土星硬件机能解析

[复制链接]
 楼主| 发表于 2025-1-4 22:03:00 | 显示全部楼层
本帖最后由 n805 于 2025-1-4 22:04 编辑
8 R4 ]0 E0 L! ~# w' y3 @( z. C. V8 O" O
" b3 f) q+ i8 |2 D8 N$ `
立体多边形(polygon)

* T* O" R: @5 W* K8 q土星通过将精灵图变形来展现多边形。这是上一篇文章已经提到过的事情。
+ D+ U  {9 {& [0 q; o# j6 ^$ Q1 k三次元坐标通过旋转矩阵(请自行百度谷歌),在空间内自由移动;通过单应性变换,将坐标变为2次元。重复这一运算,将4个点变为2次元坐标,并以这四个坐标为顶点绘制四边形。这就成了立体多边形。这个多边形可以给四个顶点设置颜色计算出渐变,也可将事先准备好的图形贴上。只是这些运算需要时间,所以图像显示是能会有所下降。4 Z- x6 @* S9 v; o$ b  V
PS则是可以选择绘制三角形或是四边形。但基本原理和刚才说的差不多。所以绘制多边形能力的差,和绘制精灵图能力的差是相同的。4 H  [* o. q7 r1 Y
上回写到,土星的图像显示能力接近PS2倍。虽然这个事实可能很意外,但土星绘制多边形的能力强于PS。# k- z& \7 d  k3 h
这时候大家会想了「不是说土星比PS不擅长3D游戏么?」。
2 z) A) `5 Z' s5 _3 l下文会详细说明,不过这里先提一下。计算在3D空间里元件的位置,并考虑摄影机的角度将这些元件的位置转换成2D坐标的处理能力,PS是压倒性地占上风。( L! Q* l6 d- m  H: q
有部分人认为变形精灵图不算多边形。笔者不这么认为。土星绘制的也是多边形。但为什么会被称作「假多边形」呢?在土星上,CPU计算3D空间内的顶点,并将顶点转换成2D坐标。然后将任意的4个顶点作为四个角,使精灵图变形并显示。这样就能绘制出一个面。根据绘制需求,通过刚才的流程制作所有面,就绘制出了立体图形。6 V3 b8 C: }* n% _
上回在写精灵图时提到过,精灵图在描绘的时候可以选择「描绘线框」或是「填充颜色」还可以显示普通的图形,以及设定四个角的颜色绘制渐变与精灵图合成。这就相当于材质的有无及Gouraud着色法。
' F$ i$ E* ^3 U3 F精灵图的图形是以横向8个点为一个单位,纵向1个像素点为单位,增减大小。如果是2D游戏,并使用透明色的话,这样一个机制没有任何问题, 你几乎可以绘制各种各样的图形。但是要绘制3D的时候,这样一个机制就显得缺乏变通。你绘制的精灵图的尺寸很容易会和你想要制作的面有尺寸上的差异。于是就会出现这样一个结果,一个立体图形,但是每个面的材质,他们的解析度都稍有不同。
8 @% B  N5 g7 S虽然3D图形画面上会有很多立体多边形,需要绘制非常多面,但是开发工具通常情况下会解决这些问题。这个可以回头再谈。9 V- k# S' B  w4 O- s, H
也就是说土星在绘制立体图形时,「计算顶点」和「绘制面」的操作是分离开来的,通过反复绘制面来生成「立体多边形」。土星的立体多边形绘制的原理就是这样了。并不是什么特别的方法。当年没有专门的3D演算硬件的电脑也是用这种方法来制作3D游戏。但是也没有人说那些电脑游戏不是立体多边形啊。% b8 E7 _2 R$ x/ `; E0 r
一个题外话,笔者印象里图形加速卡像雨后春笋一样出现是从1993年开始。当时的一些公司,比如Cirrus Logic之流做的那些所谓加速卡其实都没有针对3D做什么特殊结构。直到3dfx推出了Voodoo,3D硬件才算是真正登场。笔者使用的电脑PC-9801 BX4搭载了Cirrus Logic的GD5430。解析度1024x760之后就只能使用16色,800x640的分辨率就开始变慢。Cirrus Logic真的不行,后来就放弃图形处理器市场开始做音频了。: C* ~5 B$ A% O; M
回过头来看看作为对手的PS吧。- S7 L3 F0 _1 Z% n5 O. s
相较于土星将「面」和「顶点」分开处理的方式,PS则是在硬件层面上就确立了「直接描绘面」的方式。PS的3D游戏大多会出现「多边形的面之间有间隙」这样一个现象,这是因为没有共享3D图形顶点所造成的。
/ X- l: E0 v& }" y/ {1 v# d2 O在绘制多边形时,PS内部会讲所有的面作为「三角形」来处理,这是硬件内部的问题。当然,在绘制面的时候,四边形的效率会更高。在制作建模时,通常也会选择使用四边形来绘制。这样看来,PS和土星并没有那么大的差别。
; f: G' O" X* X  c假设我们准备一个256x256的材质。然后指定材质在画面上相应的坐标位置(UV坐标)。坐标可以以1个像素点为单位设定,所以就不会出现不同地方的解析度不同的问题。这种方式在当时的3D-CAD中已经广泛应用,制作数据也更为简单。
+ D( _- V8 C: e) G" v: u$ J! e没有图片进行说明的话还是很麻烦,所以找点图来。
, D1 B! z# M3 m5 b

/ y; D: A4 n, ?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
回复

使用道具 举报

 楼主| 发表于 2025-1-4 22:09:34 | 显示全部楼层
本帖最后由 n805 于 2025-1-4 22:10 编辑 " a% E+ i: z' G$ U
7 s4 @1 j  Y& K0 J6 }
PS可以使用3角型和四边形。一个四边形可以用两个三角形来组成,只是多绘制两个图形那当然还是绘制一个图形需要的运算更少。所以大部分情况下还是会使用四边形。
; N! I5 [) d0 O$ q* Z. ]6边形和8边形分别可以用两个或者三个四边形来组成。问题在于7边形。7边形无论如何都会需要一个三角形。
+ N8 V4 C7 A3 X& Y- [1 c在这种情况下,PS可以使用三角形的多边形。土星则通过将一个四边形的两个顶点重合(分享一个顶点)来让一个四边形变形成三角形。换句话说就是让四边形的两个顶点都用相同的坐标数据。所以无论是哪个平台都可以显示相同的多边形。虽然方法上有区别,但是没有优劣。0 L2 t2 K/ i) R7 q
接下来说下材质贴图。( l" @: @8 X9 C. A/ a4 ?
假设我们有下图的这样一个立体多边形,一个六棱柱。我们给他附上贴图,来表现一个饮料罐。六棱柱本身是一个简单的图形,一共12个顶点,需要的算量不大,所以在当时经常会被用到。
: g. F0 b2 l  X( x/ |" h2 L: N% D
, K+ b6 u7 W2 d+ {4 w: z, T8 U
附到图形上的贴图是这样一个图案。

2 {' t4 u5 U5 u+ ~PS可以对这个图像进行设定,指定罐子的各个顶点在这个图像上的对应位置,也就是设定坐标(UV坐标)。于是贴图就可以绕着图形贴上去。* K0 `' {( f) J" G# v
2 ?8 n, M2 a4 A* d) b" [
土星需要事先将材质贴图的图像分割。
' h+ ~' {5 v9 n' Y
4 m7 G  k0 D" c% r4 t
PS像是将材质贴图贴上去。土星则更像是将分割好的材质做为面板围着图形搭起来。
$ Z( p! a, f2 s. C) x8 r% C" w这只是一个相对简单的例子。只要对材质进行分割就可以,不需要太复杂的操作,使用工具软件就可以完成。那接下来我们再进一步细化我们的这个饮料罐。我们在它顶面的六边形上绘制一个拉环。% O: [+ y: t& B- b4 z- j
可以使用uv坐标的话(PS之流),我们可以先绘制一个四边形,然后在四边形的材质上通过设置UV坐标来将四边形剪裁成六边形,贴附在图形上,一个拉环就完成了。
6 T& x& b, M( {& b/ c但是如果是土星的话,材质会先被剪裁成四边形,并被变形。所以在绘制材质的时候就要首先考虑到变形这一点,绘制变形后比例正常的土星。也就是说准备贴图的过程会变得很麻烦。
$ ~4 \7 o) O, u9 j乍一看PS的3D十分好用,实际运用时也并非如此。/ {, u, A2 Q0 D# f1 g; z
解释起来有些麻烦的问题。实际上UV坐标的各个点和点之间的连线是直线。既然要贴图,就需要读取由点阵图绘制的材质,于是材质的边缘就会出现折线,形状会稍有扭曲。接下来的贴图的过程,根据立体多边形的形状确定贴图的区域,点阵图的像素会被写入。这里又会出现扭曲。这是PS的材质扭曲的另外一个原因。
; A) k! ~" n; Y' Q- ~& Z众所周知,PS的材质会扭曲,这是PS的一大弱点。土星在读取材质是不会发生扭曲,只有在最后显示图形的时候才会出现扭曲。绘制变形后比例正常材质虽然麻烦,但并不困难。PS的做法在材质非常大时,扭曲的影响会相对变小,甚至可以忽略。但实际上PS的内存很小,无法使用如此之大的贴图,所以这个问题无法绕过。( r/ a! W: S" k7 g- ]( _
PS可以说是一个标准的、教科书式的3D硬件,却没有重视实现上的现实问题。土星虽然是生硬的在一个2D硬件里建立了3D功能,但比PS重视实现上的现实问题。如此看来,双方也没有什么优劣之分。8 i0 \- j0 a! I- _. n( l# ?: `
立体多边形(polygon)只是一个概念,而不是什么技术。不是三角形;不是通过UV坐标贴图;不是硬件计算……甚至没有明确的定义。所以,「假多边形」之类的说法在我看来也无法理解。
- R, v! s7 Q! }% ~) G2 @1 K7 }

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
回复

使用道具 举报

 楼主| 发表于 2025-1-5 02:55:22 | 显示全部楼层

$ O+ W$ t& }! _
SH2的运算速度

* v  `9 y( X! q' ~% c# U- U# R土星的CPU是日立制作所(现在的Renesas)的SH2。按照世嘉的说法,日立制作所按照世嘉的意愿以SH1为基础定制的CPU,就是SH2。但日立似乎不这么认为,理所当然的事情,绘制3D时需要的运算比2D更多。PS有3D专用的运算电路,世嘉土星一开始的目标就是「2D游戏机的究极形态」,所以没有3D专用的运算电路。土星在处理3D运算时就必须靠CPU。( r6 f: `# z8 r7 c9 P
SH2是RISC CPU,中文叫精简指令集计算机。至于精简的是什么,简单的说就是能运行简单的指令,但是运作效率高。SH2就只能运行简单的指令,这里划个重点。不过SH2有一个复杂的指令,就是「乘法运算指令」。
2 b; T+ g  A3 t# N- J+ h5 H7 JSH2的大部分指令都只需要一个处理周期就可以完成。乘算虽然是复杂指令,但通常也只需要3个处理周期,并且根据情况可快可慢。6 l, v" e( }1 Z9 o9 M& Z4 O. M' i' f
其他指令都只要1个处理周期,相较之下3个处理周期就显得慢了。不过和隔壁家的PS比较之后,就能发现SH2非常优秀。PS的R3000在处理乘算指令的时候需要12个处理周期。SH2的3个处理周期在当时可以说是非常快。: \" H' d5 q0 u. ^! n
在这3个处理周期里,还可以进行乘积累加运算。乘积累加运算对于制作3D游戏而言非常重要,在进行阵列的乘法运算时会发挥惊人的威力,只是这个运算指令有些特殊,需要和其他指令组合使用。这个下文再提。
7 b0 s1 @+ I% j. H3 t" @一个注意点,这个RISC里最复杂的指令就是「乘法运算」,比乘法运算更为复杂的「除法运算」不包含在SH2的指令集里。除法运算过于复杂,于是加入了「单次迭代除法运算」指令作为代用。得到的值就和纸上进行笔算一个步骤得到的值一样。重复这个单次迭代除法就可以进行除法运算。
8 o! D' P3 V7 T4 [  b首先执行除法运算设置命令,指定被除数和除数。这个指令需要一个运算周期。接下来进行一次「单次迭代除法运算」,得到「一位数」的结果。
+ F2 Q) h5 H# q/ `6 P2 d6 G如果是16bit数据,那就需要对16位数的2进制数字进行运算。一位数一个运算周期,重复16次就是16个运算周期。加上对运算设置的1个周期,一共耗费17个运算周期,非常耗时。SH2还可以对32bit数据进行计算,需要的时间长达64个运算单位。而实际运用上不需要进行如此高精度的除法运算。- s. K/ Y" K5 w. }. ?. j6 L+ t0 a
土星的SH2的主频是28.64MHz,也就是说1秒可以进行2864次运算。就像刚才说的一样,进行一次乘法消耗3个周期,一次除法17个周期。) k4 C2 `3 |% |/ l- t
让3D元件显示在画面指定的位置上,就需要进行3D演算。于是就要用到「旋转移动阵列」(下面简称为旋转阵列)。这是一个3x4的阵列。  C% |2 x# l; n: i: W
使用刚才提到的乘积累加运算就可以很快的完成阵列计算。1x3的顶点坐标阵列乘以3x4的旋转阵列,这就需要进行12次的乘法运算和9次的加法运算。刚才说过,乘积累加运算指令特殊性的问题,刨去细节,实际上这样一个运算需要68个运算周期。% Y* v) [. M+ r1 s: K% A0 |% |
最后还要进行一个叫「透视坐标」的处理。将3D中被旋转移动的顶点数据转换成2D坐标。方法很简单将X,Y两个点分别处以Z就可以。处理本身很简单,但是需要使用两次慢除法(一个计算机术语,当然也有快除法)。4 m6 e* Y- V; \
透视坐标处理需要大概50个运算周期。旋转阵列的运算加上透视坐标的运算就组成了让3D元件显示在指定位置的「顶点坐标运算」(Geometry Process,那个中文是我随便编的)。刚才提到的两个数字相加等于118运算周期。在实际运用时,还需要设置旋转阵列数据、循环指令以及其他数据的处理,所以实际需要耗费150个运算周期左右。每秒2864万个运算周期除以150个运算周期,大概商19万左右吧。假设这个3D元件纯粹就只是几个顶点数据连接起来的方块,那么SH2一秒钟里可以生成19万个这样的3D元件,这就是SH2的理论极限。

) \/ f) S3 w" y6 t- M- B

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
回复

使用道具 举报

 楼主| 发表于 2025-1-5 03:04:32 | 显示全部楼层
本帖最后由 n805 于 2025-1-5 03:33 编辑 : D. M; ?2 @! G) v  h
$ K4 A" N* d2 K3 P

& q9 f. f) T$ b1 V  d/ d
双处理器

+ D, F& ^! h4 ?) S在土星开发的末期,坊间也开始出现日后的对手PS的传言。PS的CPU R3000主频33.86MHz,主频数比土星的SH2高了20%,但并不是什么特别大的差距。比起主频,更重要的是PS拥有土星所没有的顶点运算引擎,用来专门处理3D运算。
2 _" ~1 ~, F8 O根据上文的计算,土星每秒可以进行19万次顶点坐标运算。拥有3D运算处理元件的PS理论上每秒可以进行450万次顶点坐标计算。但是这450万3D多边形并无法显示。顶点处理引擎并不是以顶点数据为基本,而是以3D多边形为基本,实际演算速度大概是每秒190万个多边形。运算能力虽高,但是显示输出能力跟不上,能显示在画面上的不过36万个多边形左右。
: [/ m* y7 K. w  S/ R0 D土星因为是「2D游戏机的究极形态」,所以显示输出能力甚高。软肋终究还是再运算能力上。刚才也提到过,纯粹只进行3D运算,也只能获得19万个顶点坐标数据。而游戏需要运动,需要处理各种其他的数据,实际能进行的3D运算也不过就10万回左右吧。
1 B% g1 m1 S9 |, w, T# q; q土星3D机制下,两个相邻的多边形可以共享顶点坐标,虽然在制作多边形上是省事了,但是仅有一个顶点也绘制不出多边形,所以真正能产生的多边形也不过每秒8万个吧。PS的36万多边形也是理论最大值,取一个比较接近现实的值,比如18万吧。18万依旧超出土星非常多。如此一来土星无法与PS抗衡。
  w3 p  N/ H6 j2 x. ^/ l- o于是世嘉向日立寻求解决方案。可惜所剩时间不多,事到如今要将机器的性能提高两倍简直天方夜谭。但SH2还真有这么一个诡异的功能。多处理器协作功能。世嘉一直自认为这是具世嘉的要求加入的功能。而日立的这个设计似乎更像是研究层面上的一种娱乐。
* p* K: L0 Q) s' L4 r不管怎么样,对于世嘉来说增加一个CPU并不会对现在的机体设计有很大影响,性能可以大幅提升,可以说是为数不多的有实现性的方案。8 O2 x' \" q6 e; c! K) `7 e% d
放在当下多处理器很常见。但在2000年以前,多处理器非常罕见。笔者依旧记得在杂志上看到双Xeon处理器的服务器电脑差点脑裤子的感觉。技术罕见,所以多有类似于“程序猿不习惯给双处理器变成,所以很多程序其实都只用到了一个处理器”等等谣言。- Q5 R$ C0 ~( P& j6 n0 O
其实这只是谣言。" f1 W# v, v3 N% y2 s2 }: J6 J
就像刚才提到的,一个SH2的性能根本无法运行3D游戏。所有3D的游戏都必然的会用到双处理器。2018年了,索狗程度肯能还不及我的索狗们可以清醒清醒了。与土星同时发售的土星版「VR战士」是针对街机版制作转换器,将其转换成SH2可以运行的程序。$ U8 L+ J5 B- ]; w0 Q) S: u
之前有提到世嘉的MODEL1街机主板拥有顶点运算专用的元件,要显示一个多边形只要指定几个顶点坐标就可以。但是这样一个过程在土星上就只能依靠两个SH2.
9 G# L) _3 [4 b4 l+ [" x% a土星亮相的初期,很多东西都还处在摸索阶段。双处理器的使用方法也还不明确,并且开发周期也不够。这导致土星版的《VR战士》充满BUG,并让玩家有了「土星性能不好」这样一个印象。
9 t0 Q) y9 F7 h1 {" A但《VR战士》是一个很好的试金石。因为它证明了土星上可以运行3D游戏。& n& y5 `( E  w# ]
之后,《VR战士》的程序被结构、整理、修正了之后成为了3D运算库。这个就是当时的新OS,土星的SGL——SEGA Graphics Library。

; w* s& k  k% y, ?) L
5 q2 {. `" l& n

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
回复

使用道具 举报

 楼主| 发表于 2025-1-5 03:12:10 | 显示全部楼层
. h2 g, z/ S. Y  Z: v) Y
SGL的运作游戏的基本
6 ], T9 Q2 K8 ?/ l2 O& Q, a
4 _$ c" F6 B& e1 w& u2 Y
在讨论SGL之前,先和大家说明一下制作一个游戏的基本吧。不管是红白机还是MEGADRIVE还是PS都是共通的基本。
+ Y# A5 K& M* D& T先想象一下《魂斗罗》吧。无论是通过手柄操纵的人物,射出的子弹,还是运动的敌人,都是程序在控制他们。游戏开始后只有自己操控的人物的时候和BOSS带着一帮小怪大闹的时候的运算处理量是不同的。  G! V! x% ]/ G
当然程序的处理速度也会有变化。游戏开始当初,处理很快就会结束。但BOSS战时,程序处理就需要相当长的时间。! G$ e3 u5 y6 ?. W/ ^% Y6 H
但是,游戏并不会在开始的时候运行的飞快,BOSS战时运行的龟慢(红白机是性能过低所以才会如此。有种可爱的拼命感,所以个人挺喜欢)。这是因为游戏会根据「画面绘制的实际」来调整游戏的处理速度。
; F. Z* O9 N# G! V% @电视的NTSC(日本的游戏机,日本的电视信号规格)信号制式,一秒钟描绘60帧画面,游戏的程序以描绘1帧的时间为基准处理。具体地说就是,游戏的程序必须在1/60秒内完成处理。程序提早完成处理也不会有问题。处理结束后,CPU会等待画面绘制结束。' C" d( L8 g* O+ R! K% k

6 S3 s' ^$ O( A  l& ]& ^$ G

; [, ^) E. O1 A- @5 n等待画面绘制完成的处理是以一定的速度进行。画面绘制处理完成后,再输出新的画面,并进行下一轮的游戏程序处理。如此一般,游戏的画面就会完整,漂亮的出现在电视机上。, c2 D! T: E  B2 b( e; P  R
顶点坐标演算
# @, ~1 Z& M/ B, y5 ]5 e运用SGL制作游戏,只要遵循刚才提到的「基本」就可以。游戏的处理过程中,想要展现多边形的话,只需要向SGL指示「在某个立体坐标系中放置多边形」。3 ~; i/ S5 _! ^+ o/ j3 N& E
程序猿不需要去在乎顶点坐标演算的过程内容和结果。事实上,也无法知道。
6 q1 i! V* H/ w向SGL指示显示多边形,程序猿会以为「SGL会进行计算」。试着不然,SGL根本就不会去进行多边形演算,仅仅试将输入的值放进内存,随即重新开始处理游戏程序。所以程序猿无法通过SGL来访问顶点坐标演算的过程、内容和结果。7 \3 M) S0 a  Q* a% O
进行顶点坐标演算的是副CPU。就是大家以为没有在工作的那个副CPU。一个员工放在工作岗位上,没有一个老板会容忍这个员工每天只会打瞌睡、划手机、吃垃圾外卖。副CPU在发现内存中有数据之后就会立刻对数据进行顶点坐标演算。
4 H) K9 W+ _* E刚才提到过顶点坐标演算很复杂,对于SH2来说是一个很大的负担。将顶点坐标运算交给副CPU,主CPU会继续进行游戏程序的处理。
0 G4 o+ n2 _* r+ ^# u游戏程序处理就代表被显示的多边形数据也源源不断的被生成。副CPU根本就没有空闲。: n) k. O3 ~- S: [. }
事实上,按照这个方法进行,处理时间依旧不够。对于副CPU而言工作量过多,主CPU往往会先完成处理。主CPU在完成游戏程序的处理之后,会等待画面绘制完成。这时,程序猿会对SGL设定激发SGL的功能指令「停止处理等待画面绘制完成」。对于程序猿来说CPU已经停止了,而SGL会依旧保持活跃。1 A# w+ m3 g4 l5 i
仅依靠副CPU的算力,时间不够。在主CPU完成处理后SGL就会让主CPU也参与顶点坐标演算。顶点坐标演算结束后,SGL会继续调用两个CPU,将计算结果沿着Z轴排列,并处理成图像引擎VDP1可以调用的命令符。7 o3 A7 W' Q# `
在这一切都完成之后,才会进入「等待画面绘制完成」的状态。主CPU会重新开始处理游戏程序;副CPU将处理画面输出的问题。1 m" [! J$ K. ?6 z( b& |  x
总体的思路就是,主CPU负责处理游戏程序,副CPU负责其他,在主CPU处理完游戏程序后会辅助副CPU。  X' W9 A( J2 e$ {$ ?  m
副CPU的运行指令9 D, t% l! V& s' [4 g
SGL中有一个明确的指令「让副CPU运行程序」。这个指令会将放置程序的内存地址交给副CPU,副CPU在空闲时会进行处理。因为是空闲时进行处理,所以也无从知晓这个程序何时会被处理。如果是3D游戏,副CPU也很难会有空闲。世嘉提供的信息也很少,所以也很少会有游戏使用这个功能。! O9 U- r5 a4 T+ Y3 g
所以「很多游戏都只会用到一个CPU」这样一个误解,应该是来源于此。0 H7 f. A" M* \9 r2 Q/ J8 L% w
SGL本身也不是3D游戏专用的运行库,SGL也可以用来制作2D游戏。而在处理2D游戏时,副CPU也需要处理画面输出、音乐处理等工作。不管怎样,与「很多游戏都只会用到一个CPU」谣言相反,大部分游戏都会用到两个CPU。
  J8 ]5 R4 i4 P- E! s) `  w有一种说法「两个CPU无法获得两倍的性能,大概就是1.2倍到1.4倍,撑死1.8倍」。这是必然。如今的PC/AT电脑也无法通过增加一个CPU来获得两倍的性能。问题的根本在于总线带宽。有两个CPU,两个CPU之间就会抢夺总线带宽,甚至会导致一方的CPU对内存或者其他存储器或者元件进行访问而停止工作。
  D5 v* w. k+ {5 V. E1 F: fSGL则会将两个CPU进行合理分工,让副CPU主要进行顶点坐标演算。毕竟和PS相比土星最大的弱点是不擅长顶点坐标演算。SGL的顶点坐标演算部分完全由汇编编写,可以完整地收纳在缓存了并尽可能高速运作。
% }7 x8 u  @* x/ y在使用SGL时,副CPU不会占用总线来对程序进行访问。也就是说副CPU不会妨碍主CPU的工作。虽然副CPU在进行顶点坐标演算时会占用总线访问内存,但大部分时间还是在运算坐标。所以抢夺总线带宽的事情基本不会发生。主CPU在完成游戏程序的处理后会进入到等待状态。有SGL的存在,在主CPU完成工作后,SGL会继续调用主CPU,合理进行工作分配。
5 U* u5 H6 I- C+ C5 J可以说世嘉尽了最大的努力去发挥双CPU的能力。

& @, W! i( Y' N' F" \9 H5 Y- {

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
回复

使用道具 举报

 楼主| 发表于 2025-1-5 03:16:53 | 显示全部楼层

7 k) G+ |( ~8 T2 \世嘉的主机也就像泡沫经济一样,经历了成长,繁荣,永远走在技术的前列,却在某一天突然消失了。一个时代结束了。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|Video Game Do It Yourself ( 闽ICP备14000865号-1|闽公网安备35018102240098号 )

GMT+8, 2026-5-21 03:46 , Processed in 0.103720 second(s), 13 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表