找回密码
 注册

QQ登录

只需一步,快速开始

楼主: n805

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

[复制链接]
 楼主| 发表于 2025-1-4 22:03:00 | 显示全部楼层
本帖最后由 n805 于 2025-1-4 22:04 编辑
% a1 ]9 B- `! T( Z2 u# H& G5 c) u. {+ f* Q. b) P( r

' d% S. K  j) P+ _
立体多边形(polygon)

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

% v4 ~8 M. n/ e2 R6 \& D- h: p/ [8 h5 _8 V  ]

本帖子中包含更多资源

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

×
回复

使用道具 举报

 楼主| 发表于 2025-1-4 22:09:34 | 显示全部楼层
本帖最后由 n805 于 2025-1-4 22:10 编辑 4 c: c& V& G' i) k, c5 z5 s" n, a$ x- m

- W+ T7 p& I! a$ |; k* Q% x- HPS可以使用3角型和四边形。一个四边形可以用两个三角形来组成,只是多绘制两个图形那当然还是绘制一个图形需要的运算更少。所以大部分情况下还是会使用四边形。
2 `* y1 L( o3 G! Q$ ]6边形和8边形分别可以用两个或者三个四边形来组成。问题在于7边形。7边形无论如何都会需要一个三角形。
/ p$ x! P7 @, d; R) i# M% j6 O在这种情况下,PS可以使用三角形的多边形。土星则通过将一个四边形的两个顶点重合(分享一个顶点)来让一个四边形变形成三角形。换句话说就是让四边形的两个顶点都用相同的坐标数据。所以无论是哪个平台都可以显示相同的多边形。虽然方法上有区别,但是没有优劣。
. P/ H# P4 w3 h' o接下来说下材质贴图。
7 j2 H) g: u5 q' e( ^6 h/ j假设我们有下图的这样一个立体多边形,一个六棱柱。我们给他附上贴图,来表现一个饮料罐。六棱柱本身是一个简单的图形,一共12个顶点,需要的算量不大,所以在当时经常会被用到。
7 f' h1 P5 V9 r% u

, r" ]! `9 e) O$ Z  d' F( A
附到图形上的贴图是这样一个图案。

4 D. f3 ?& E2 d. M4 G* W* }& @PS可以对这个图像进行设定,指定罐子的各个顶点在这个图像上的对应位置,也就是设定坐标(UV坐标)。于是贴图就可以绕着图形贴上去。
7 R. ^: l7 x6 X* H1 H" Q

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

+ m- B8 N/ T$ z$ J; u2 B1 I) b( P

本帖子中包含更多资源

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

×
回复

使用道具 举报

 楼主| 发表于 2025-1-5 02:55:22 | 显示全部楼层
9 N1 ]& p0 k. d
SH2的运算速度
% q) e3 C$ q5 h1 E
土星的CPU是日立制作所(现在的Renesas)的SH2。按照世嘉的说法,日立制作所按照世嘉的意愿以SH1为基础定制的CPU,就是SH2。但日立似乎不这么认为,理所当然的事情,绘制3D时需要的运算比2D更多。PS有3D专用的运算电路,世嘉土星一开始的目标就是「2D游戏机的究极形态」,所以没有3D专用的运算电路。土星在处理3D运算时就必须靠CPU。
" e; A3 J- r6 L& G& O9 X1 |' _2 tSH2是RISC CPU,中文叫精简指令集计算机。至于精简的是什么,简单的说就是能运行简单的指令,但是运作效率高。SH2就只能运行简单的指令,这里划个重点。不过SH2有一个复杂的指令,就是「乘法运算指令」。; m8 f. \" n5 l* ]1 N2 w& A
SH2的大部分指令都只需要一个处理周期就可以完成。乘算虽然是复杂指令,但通常也只需要3个处理周期,并且根据情况可快可慢。& d5 _: |( i) w
其他指令都只要1个处理周期,相较之下3个处理周期就显得慢了。不过和隔壁家的PS比较之后,就能发现SH2非常优秀。PS的R3000在处理乘算指令的时候需要12个处理周期。SH2的3个处理周期在当时可以说是非常快。$ [) n( Y" d7 U8 i0 g6 U& {! S2 {
在这3个处理周期里,还可以进行乘积累加运算。乘积累加运算对于制作3D游戏而言非常重要,在进行阵列的乘法运算时会发挥惊人的威力,只是这个运算指令有些特殊,需要和其他指令组合使用。这个下文再提。* b' ~2 V$ l; C- x
一个注意点,这个RISC里最复杂的指令就是「乘法运算」,比乘法运算更为复杂的「除法运算」不包含在SH2的指令集里。除法运算过于复杂,于是加入了「单次迭代除法运算」指令作为代用。得到的值就和纸上进行笔算一个步骤得到的值一样。重复这个单次迭代除法就可以进行除法运算。
+ }/ k  t$ I+ d3 J! N7 ]+ ]+ n首先执行除法运算设置命令,指定被除数和除数。这个指令需要一个运算周期。接下来进行一次「单次迭代除法运算」,得到「一位数」的结果。
9 r9 a/ p  B3 r( x; l- R如果是16bit数据,那就需要对16位数的2进制数字进行运算。一位数一个运算周期,重复16次就是16个运算周期。加上对运算设置的1个周期,一共耗费17个运算周期,非常耗时。SH2还可以对32bit数据进行计算,需要的时间长达64个运算单位。而实际运用上不需要进行如此高精度的除法运算。
; E5 s+ v- t+ ?土星的SH2的主频是28.64MHz,也就是说1秒可以进行2864次运算。就像刚才说的一样,进行一次乘法消耗3个周期,一次除法17个周期。
8 ?4 H  D/ w2 X# `  D6 \1 P0 U让3D元件显示在画面指定的位置上,就需要进行3D演算。于是就要用到「旋转移动阵列」(下面简称为旋转阵列)。这是一个3x4的阵列。
4 y. y' b& j8 X  i% I; S使用刚才提到的乘积累加运算就可以很快的完成阵列计算。1x3的顶点坐标阵列乘以3x4的旋转阵列,这就需要进行12次的乘法运算和9次的加法运算。刚才说过,乘积累加运算指令特殊性的问题,刨去细节,实际上这样一个运算需要68个运算周期。. l! I2 M/ `6 w' B2 S5 {" l
最后还要进行一个叫「透视坐标」的处理。将3D中被旋转移动的顶点数据转换成2D坐标。方法很简单将X,Y两个点分别处以Z就可以。处理本身很简单,但是需要使用两次慢除法(一个计算机术语,当然也有快除法)。5 x' B- z" X8 ~, w5 x. m
透视坐标处理需要大概50个运算周期。旋转阵列的运算加上透视坐标的运算就组成了让3D元件显示在指定位置的「顶点坐标运算」(Geometry Process,那个中文是我随便编的)。刚才提到的两个数字相加等于118运算周期。在实际运用时,还需要设置旋转阵列数据、循环指令以及其他数据的处理,所以实际需要耗费150个运算周期左右。每秒2864万个运算周期除以150个运算周期,大概商19万左右吧。假设这个3D元件纯粹就只是几个顶点数据连接起来的方块,那么SH2一秒钟里可以生成19万个这样的3D元件,这就是SH2的理论极限。
' x  a8 y' o# z' K2 Q

本帖子中包含更多资源

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

×
回复

使用道具 举报

 楼主| 发表于 2025-1-5 03:04:32 | 显示全部楼层
本帖最后由 n805 于 2025-1-5 03:33 编辑
* @4 r" X' y" w  n0 L
1 Q9 h7 j% [$ u& N1 @- z+ z! J. E1 [& v

! @2 v5 K# o7 A& q* `5 |4 y
双处理器

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

/ v* R$ y* l: ?! }7 t' u+ A+ ^4 l# \4 j

本帖子中包含更多资源

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

×
回复

使用道具 举报

 楼主| 发表于 2025-1-5 03:12:10 | 显示全部楼层
* K$ u) A" j/ y6 W9 P- s
SGL的运作游戏的基本

- s2 G: {' G7 e. c, O! _4 N3 I5 S7 T" p$ d' i5 u- q' }4 n( o$ s
在讨论SGL之前,先和大家说明一下制作一个游戏的基本吧。不管是红白机还是MEGADRIVE还是PS都是共通的基本。2 D; [8 m) b: K; t+ w- M6 W
先想象一下《魂斗罗》吧。无论是通过手柄操纵的人物,射出的子弹,还是运动的敌人,都是程序在控制他们。游戏开始后只有自己操控的人物的时候和BOSS带着一帮小怪大闹的时候的运算处理量是不同的。8 J/ K  m+ I/ _3 c' w; I4 m
当然程序的处理速度也会有变化。游戏开始当初,处理很快就会结束。但BOSS战时,程序处理就需要相当长的时间。5 s4 |' T+ A. i
但是,游戏并不会在开始的时候运行的飞快,BOSS战时运行的龟慢(红白机是性能过低所以才会如此。有种可爱的拼命感,所以个人挺喜欢)。这是因为游戏会根据「画面绘制的实际」来调整游戏的处理速度。5 T7 L( a8 \- s" E* [, [/ D7 n
电视的NTSC(日本的游戏机,日本的电视信号规格)信号制式,一秒钟描绘60帧画面,游戏的程序以描绘1帧的时间为基准处理。具体地说就是,游戏的程序必须在1/60秒内完成处理。程序提早完成处理也不会有问题。处理结束后,CPU会等待画面绘制结束。" ^+ \3 A0 j( ~+ l0 N
5 r3 G( X9 L  Q4 P, P

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

本帖子中包含更多资源

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

×
回复

使用道具 举报

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

0 z3 c! ~% w" `0 _  c世嘉的主机也就像泡沫经济一样,经历了成长,繁荣,永远走在技术的前列,却在某一天突然消失了。一个时代结束了。

本帖子中包含更多资源

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

×
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-4-7 04:24 , Processed in 0.109539 second(s), 12 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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