找回密码
 注册

QQ登录

只需一步,快速开始

楼主: n805

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

[复制链接]
 楼主| 发表于 2025-1-4 22:03:00 | 显示全部楼层
本帖最后由 n805 于 2025-1-4 22:04 编辑 ( ~1 V5 G$ a- x* F: K! R

5 i% G- V# {# G/ W/ O3 t4 h; R

( k" ~  S6 D/ U$ N" a# L
立体多边形(polygon)

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

9 n- ~3 u  q9 X/ g$ G* D$ q$ ^9 g; W5 g: |$ [$ [6 v

本帖子中包含更多资源

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

×
回复

使用道具 举报

 楼主| 发表于 2025-1-4 22:09:34 | 显示全部楼层
本帖最后由 n805 于 2025-1-4 22:10 编辑
  T5 E/ }' q9 D7 w2 m2 G
0 Q& A  H5 W  Q( |& D) X$ DPS可以使用3角型和四边形。一个四边形可以用两个三角形来组成,只是多绘制两个图形那当然还是绘制一个图形需要的运算更少。所以大部分情况下还是会使用四边形。# K; V' L# g" b2 x- \7 p8 V
6边形和8边形分别可以用两个或者三个四边形来组成。问题在于7边形。7边形无论如何都会需要一个三角形。3 @0 l2 H% s& f5 b$ _' `
在这种情况下,PS可以使用三角形的多边形。土星则通过将一个四边形的两个顶点重合(分享一个顶点)来让一个四边形变形成三角形。换句话说就是让四边形的两个顶点都用相同的坐标数据。所以无论是哪个平台都可以显示相同的多边形。虽然方法上有区别,但是没有优劣。
6 G- _6 q" x, |/ x) W接下来说下材质贴图。% w$ N! v6 V: }' a, D' |0 s* J5 W/ l
假设我们有下图的这样一个立体多边形,一个六棱柱。我们给他附上贴图,来表现一个饮料罐。六棱柱本身是一个简单的图形,一共12个顶点,需要的算量不大,所以在当时经常会被用到。
4 o: R1 h/ f4 X5 g# J
& ^( y6 o3 a7 M
附到图形上的贴图是这样一个图案。

' \9 z! [# `' t& A; WPS可以对这个图像进行设定,指定罐子的各个顶点在这个图像上的对应位置,也就是设定坐标(UV坐标)。于是贴图就可以绕着图形贴上去。
4 R, d$ R0 P; b/ j, M3 }

8 x# l1 R2 i  q. U3 ]% y% D, j
土星需要事先将材质贴图的图像分割。
  f4 c) X* U! {- f3 x; h
7 P5 l# Q5 ?3 a3 F8 \0 q1 J
PS像是将材质贴图贴上去。土星则更像是将分割好的材质做为面板围着图形搭起来。1 Y. S5 {3 H, m$ t
这只是一个相对简单的例子。只要对材质进行分割就可以,不需要太复杂的操作,使用工具软件就可以完成。那接下来我们再进一步细化我们的这个饮料罐。我们在它顶面的六边形上绘制一个拉环。
3 u; y& _' B5 u4 n可以使用uv坐标的话(PS之流),我们可以先绘制一个四边形,然后在四边形的材质上通过设置UV坐标来将四边形剪裁成六边形,贴附在图形上,一个拉环就完成了。
( E3 G0 {4 K/ V! A. N( g1 K但是如果是土星的话,材质会先被剪裁成四边形,并被变形。所以在绘制材质的时候就要首先考虑到变形这一点,绘制变形后比例正常的土星。也就是说准备贴图的过程会变得很麻烦。0 ~3 n! @" @& q' \: F5 L9 E
乍一看PS的3D十分好用,实际运用时也并非如此。
5 M* z0 r" n" c. v8 J% n解释起来有些麻烦的问题。实际上UV坐标的各个点和点之间的连线是直线。既然要贴图,就需要读取由点阵图绘制的材质,于是材质的边缘就会出现折线,形状会稍有扭曲。接下来的贴图的过程,根据立体多边形的形状确定贴图的区域,点阵图的像素会被写入。这里又会出现扭曲。这是PS的材质扭曲的另外一个原因。% W+ k2 Z5 F$ ~; y0 k
众所周知,PS的材质会扭曲,这是PS的一大弱点。土星在读取材质是不会发生扭曲,只有在最后显示图形的时候才会出现扭曲。绘制变形后比例正常材质虽然麻烦,但并不困难。PS的做法在材质非常大时,扭曲的影响会相对变小,甚至可以忽略。但实际上PS的内存很小,无法使用如此之大的贴图,所以这个问题无法绕过。, A9 h3 }; r% S
PS可以说是一个标准的、教科书式的3D硬件,却没有重视实现上的现实问题。土星虽然是生硬的在一个2D硬件里建立了3D功能,但比PS重视实现上的现实问题。如此看来,双方也没有什么优劣之分。# R3 ?- ]: t; n2 _4 Z
立体多边形(polygon)只是一个概念,而不是什么技术。不是三角形;不是通过UV坐标贴图;不是硬件计算……甚至没有明确的定义。所以,「假多边形」之类的说法在我看来也无法理解。
2 i2 r; A* K" B% ~/ S5 ~/ i. J

本帖子中包含更多资源

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

×
回复

使用道具 举报

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

% l0 G7 f9 V2 X. }
SH2的运算速度

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

本帖子中包含更多资源

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

×
回复

使用道具 举报

 楼主| 发表于 2025-1-5 03:04:32 | 显示全部楼层
本帖最后由 n805 于 2025-1-5 03:33 编辑 , G" T& u  m: Q: c* B

9 [3 p3 V$ ]+ q' t: m6 @

$ h; x, ^" \' [: z
双处理器

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

( L9 h& Y) q( h+ D8 q& `' _9 P2 O0 Q  G. }$ r3 G3 A& U- R

本帖子中包含更多资源

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

×
回复

使用道具 举报

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

) o( a) k$ r. L
SGL的运作游戏的基本

5 f, P( P: ^3 j# a8 W/ d3 {: f$ C$ d$ H: ?, v. @, X% p$ M
在讨论SGL之前,先和大家说明一下制作一个游戏的基本吧。不管是红白机还是MEGADRIVE还是PS都是共通的基本。
" b" e/ Q$ b/ b* U) r先想象一下《魂斗罗》吧。无论是通过手柄操纵的人物,射出的子弹,还是运动的敌人,都是程序在控制他们。游戏开始后只有自己操控的人物的时候和BOSS带着一帮小怪大闹的时候的运算处理量是不同的。
* K' `* j9 L/ t: i+ i当然程序的处理速度也会有变化。游戏开始当初,处理很快就会结束。但BOSS战时,程序处理就需要相当长的时间。
0 Q9 W* Y; O$ s7 _* V& t3 W但是,游戏并不会在开始的时候运行的飞快,BOSS战时运行的龟慢(红白机是性能过低所以才会如此。有种可爱的拼命感,所以个人挺喜欢)。这是因为游戏会根据「画面绘制的实际」来调整游戏的处理速度。, w$ i$ P( H( p% g. h: P  n
电视的NTSC(日本的游戏机,日本的电视信号规格)信号制式,一秒钟描绘60帧画面,游戏的程序以描绘1帧的时间为基准处理。具体地说就是,游戏的程序必须在1/60秒内完成处理。程序提早完成处理也不会有问题。处理结束后,CPU会等待画面绘制结束。
; C3 W3 n7 V+ h" x

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

- ?( p4 M( Q3 h/ S8 l/ g9 p; \

本帖子中包含更多资源

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

×
回复

使用道具 举报

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

+ W" |/ a9 R5 Q1 M) u世嘉的主机也就像泡沫经济一样,经历了成长,繁荣,永远走在技术的前列,却在某一天突然消失了。一个时代结束了。

本帖子中包含更多资源

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

×
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-15 23:42 , Processed in 0.102141 second(s), 12 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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