找回密码
 注册

QQ登录

只需一步,快速开始

楼主: n805

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

[复制链接]
 楼主| 发表于 2025-1-4 22:03:00 | 显示全部楼层
本帖最后由 n805 于 2025-1-4 22:04 编辑
2 H$ Y0 l$ D/ [8 n
* ~4 v, ~( a) U$ [

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

本帖子中包含更多资源

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

×
回复

使用道具 举报

 楼主| 发表于 2025-1-4 22:09:34 | 显示全部楼层
本帖最后由 n805 于 2025-1-4 22:10 编辑
  X. P7 r2 \( j2 ~3 d& \
1 D1 s/ v( W! ~; |- e, d8 e, B! rPS可以使用3角型和四边形。一个四边形可以用两个三角形来组成,只是多绘制两个图形那当然还是绘制一个图形需要的运算更少。所以大部分情况下还是会使用四边形。0 T( v0 F6 V0 z
6边形和8边形分别可以用两个或者三个四边形来组成。问题在于7边形。7边形无论如何都会需要一个三角形。
% s9 P7 \9 x! V0 L在这种情况下,PS可以使用三角形的多边形。土星则通过将一个四边形的两个顶点重合(分享一个顶点)来让一个四边形变形成三角形。换句话说就是让四边形的两个顶点都用相同的坐标数据。所以无论是哪个平台都可以显示相同的多边形。虽然方法上有区别,但是没有优劣。
1 A# y7 T. R% t$ \接下来说下材质贴图。
7 H# H% O5 b. Z3 J0 ?& d( z假设我们有下图的这样一个立体多边形,一个六棱柱。我们给他附上贴图,来表现一个饮料罐。六棱柱本身是一个简单的图形,一共12个顶点,需要的算量不大,所以在当时经常会被用到。

9 k0 g! K3 V" S

$ D! e6 U1 i3 v  z3 O
附到图形上的贴图是这样一个图案。
5 M" I+ t4 Z( ~) Q
PS可以对这个图像进行设定,指定罐子的各个顶点在这个图像上的对应位置,也就是设定坐标(UV坐标)。于是贴图就可以绕着图形贴上去。9 k+ m9 q3 m8 |. k$ c3 W4 C
% i. B& F: L- L0 F, N% p
土星需要事先将材质贴图的图像分割。

* X5 W8 x- b- Z2 ]0 g- s
8 B/ a9 Z- w7 ?
PS像是将材质贴图贴上去。土星则更像是将分割好的材质做为面板围着图形搭起来。3 N; g# ^2 [  W/ ^
这只是一个相对简单的例子。只要对材质进行分割就可以,不需要太复杂的操作,使用工具软件就可以完成。那接下来我们再进一步细化我们的这个饮料罐。我们在它顶面的六边形上绘制一个拉环。. ?: u9 s# f; n* A4 E) z* L
可以使用uv坐标的话(PS之流),我们可以先绘制一个四边形,然后在四边形的材质上通过设置UV坐标来将四边形剪裁成六边形,贴附在图形上,一个拉环就完成了。
4 Q: [) n' T! P0 X$ V7 W但是如果是土星的话,材质会先被剪裁成四边形,并被变形。所以在绘制材质的时候就要首先考虑到变形这一点,绘制变形后比例正常的土星。也就是说准备贴图的过程会变得很麻烦。6 `$ c, p7 Z( X0 r
乍一看PS的3D十分好用,实际运用时也并非如此。; R4 G- `& ~9 R4 [' _6 W5 K3 ]
解释起来有些麻烦的问题。实际上UV坐标的各个点和点之间的连线是直线。既然要贴图,就需要读取由点阵图绘制的材质,于是材质的边缘就会出现折线,形状会稍有扭曲。接下来的贴图的过程,根据立体多边形的形状确定贴图的区域,点阵图的像素会被写入。这里又会出现扭曲。这是PS的材质扭曲的另外一个原因。
& W9 R2 ^7 d$ L1 N2 o( k众所周知,PS的材质会扭曲,这是PS的一大弱点。土星在读取材质是不会发生扭曲,只有在最后显示图形的时候才会出现扭曲。绘制变形后比例正常材质虽然麻烦,但并不困难。PS的做法在材质非常大时,扭曲的影响会相对变小,甚至可以忽略。但实际上PS的内存很小,无法使用如此之大的贴图,所以这个问题无法绕过。+ e0 M. J- _% m) k
PS可以说是一个标准的、教科书式的3D硬件,却没有重视实现上的现实问题。土星虽然是生硬的在一个2D硬件里建立了3D功能,但比PS重视实现上的现实问题。如此看来,双方也没有什么优劣之分。- W0 H' {. y' V8 N3 V
立体多边形(polygon)只是一个概念,而不是什么技术。不是三角形;不是通过UV坐标贴图;不是硬件计算……甚至没有明确的定义。所以,「假多边形」之类的说法在我看来也无法理解。

: {4 z3 Z1 ~7 b

本帖子中包含更多资源

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

×
回复

使用道具 举报

 楼主| 发表于 2025-1-5 02:55:22 | 显示全部楼层
$ I; {0 g) c  o
SH2的运算速度

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

  D0 U/ g# Q- s0 S* S$ h$ s% M

本帖子中包含更多资源

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

×
回复

使用道具 举报

 楼主| 发表于 2025-1-5 03:04:32 | 显示全部楼层
本帖最后由 n805 于 2025-1-5 03:33 编辑 ) B/ C' {9 V) Y2 N
  {" s% ?4 W5 d. V+ s& K# K

* L8 E. s( ^. z9 F6 T
双处理器

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

. w+ e5 [4 @& S# V7 o/ \8 N8 @* I7 n( O3 \

本帖子中包含更多资源

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

×
回复

使用道具 举报

 楼主| 发表于 2025-1-5 03:12:10 | 显示全部楼层
  [$ X0 S2 }9 |/ R
SGL的运作游戏的基本
( s1 O7 P$ z: ]" d
! c; |/ `2 D8 r  o, W/ {7 f  H
在讨论SGL之前,先和大家说明一下制作一个游戏的基本吧。不管是红白机还是MEGADRIVE还是PS都是共通的基本。2 M# A  o( V0 G7 a% X& z/ X9 y: }
先想象一下《魂斗罗》吧。无论是通过手柄操纵的人物,射出的子弹,还是运动的敌人,都是程序在控制他们。游戏开始后只有自己操控的人物的时候和BOSS带着一帮小怪大闹的时候的运算处理量是不同的。+ t; N& T1 [; |1 O7 K
当然程序的处理速度也会有变化。游戏开始当初,处理很快就会结束。但BOSS战时,程序处理就需要相当长的时间。0 t6 B3 y; P+ ]
但是,游戏并不会在开始的时候运行的飞快,BOSS战时运行的龟慢(红白机是性能过低所以才会如此。有种可爱的拼命感,所以个人挺喜欢)。这是因为游戏会根据「画面绘制的实际」来调整游戏的处理速度。
7 W2 d2 \; q9 }/ D: |电视的NTSC(日本的游戏机,日本的电视信号规格)信号制式,一秒钟描绘60帧画面,游戏的程序以描绘1帧的时间为基准处理。具体地说就是,游戏的程序必须在1/60秒内完成处理。程序提早完成处理也不会有问题。处理结束后,CPU会等待画面绘制结束。
) `- Q  i0 }4 U+ H! E- {: W9 u

5 ^9 Z1 x) @# ~: C( P

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

6 D* W4 z  R5 v

本帖子中包含更多资源

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

×
回复

使用道具 举报

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

1 N' \* }6 J  ^9 f/ F世嘉的主机也就像泡沫经济一样,经历了成长,繁荣,永远走在技术的前列,却在某一天突然消失了。一个时代结束了。

本帖子中包含更多资源

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

×
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Video Game Do It Yourself ( 闽ICP备14000865号 )

GMT+8, 2025-4-26 13:12 , Processed in 0.103937 second(s), 12 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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