找回密码
 注册

QQ登录

只需一步,快速开始

楼主: n805

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

[复制链接]
 楼主| 发表于 2025-1-4 22:03:00 | 显示全部楼层
本帖最后由 n805 于 2025-1-4 22:04 编辑
3 b! n4 D. v' d
" Z: j; O) Y( `% X) b) @1 F* J/ e

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

, C' Y2 |2 g  e8 O1 ~, H7 q4 ?5 Y

本帖子中包含更多资源

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

×
回复

使用道具 举报

 楼主| 发表于 2025-1-4 22:09:34 | 显示全部楼层
本帖最后由 n805 于 2025-1-4 22:10 编辑 " u' g. ?% \$ x

! H5 F5 o4 @7 z- O" P0 GPS可以使用3角型和四边形。一个四边形可以用两个三角形来组成,只是多绘制两个图形那当然还是绘制一个图形需要的运算更少。所以大部分情况下还是会使用四边形。7 a: c9 {% ^3 g8 T
6边形和8边形分别可以用两个或者三个四边形来组成。问题在于7边形。7边形无论如何都会需要一个三角形。
2 g2 a$ a; O6 t, y, g/ d在这种情况下,PS可以使用三角形的多边形。土星则通过将一个四边形的两个顶点重合(分享一个顶点)来让一个四边形变形成三角形。换句话说就是让四边形的两个顶点都用相同的坐标数据。所以无论是哪个平台都可以显示相同的多边形。虽然方法上有区别,但是没有优劣。$ E% W% `, h( c# B( f
接下来说下材质贴图。, c: ~; T' k. [: g
假设我们有下图的这样一个立体多边形,一个六棱柱。我们给他附上贴图,来表现一个饮料罐。六棱柱本身是一个简单的图形,一共12个顶点,需要的算量不大,所以在当时经常会被用到。
! n& Q2 R3 [0 e! V+ }+ ]( j+ O

9 R3 N. h8 U+ {% O+ U
附到图形上的贴图是这样一个图案。
0 o& L2 M, O3 A- H
PS可以对这个图像进行设定,指定罐子的各个顶点在这个图像上的对应位置,也就是设定坐标(UV坐标)。于是贴图就可以绕着图形贴上去。$ Q/ F# }* Z/ I, ^# p! s+ x$ C6 @

/ F3 p. n8 V  ]2 b
土星需要事先将材质贴图的图像分割。
% K% t5 }5 ?$ h8 n2 g$ }
! I2 B  K" b5 P* Q. A
PS像是将材质贴图贴上去。土星则更像是将分割好的材质做为面板围着图形搭起来。
$ ?3 @7 r  V0 |3 }& |$ y) g5 F7 a这只是一个相对简单的例子。只要对材质进行分割就可以,不需要太复杂的操作,使用工具软件就可以完成。那接下来我们再进一步细化我们的这个饮料罐。我们在它顶面的六边形上绘制一个拉环。6 x8 x1 z+ H& D
可以使用uv坐标的话(PS之流),我们可以先绘制一个四边形,然后在四边形的材质上通过设置UV坐标来将四边形剪裁成六边形,贴附在图形上,一个拉环就完成了。
1 z  O4 U7 _! A2 Y3 x; g但是如果是土星的话,材质会先被剪裁成四边形,并被变形。所以在绘制材质的时候就要首先考虑到变形这一点,绘制变形后比例正常的土星。也就是说准备贴图的过程会变得很麻烦。
8 p: u* Y* Y+ R, V; d乍一看PS的3D十分好用,实际运用时也并非如此。4 y7 z: N1 R6 n
解释起来有些麻烦的问题。实际上UV坐标的各个点和点之间的连线是直线。既然要贴图,就需要读取由点阵图绘制的材质,于是材质的边缘就会出现折线,形状会稍有扭曲。接下来的贴图的过程,根据立体多边形的形状确定贴图的区域,点阵图的像素会被写入。这里又会出现扭曲。这是PS的材质扭曲的另外一个原因。4 Y. p) E  S2 f# b' \- p* J
众所周知,PS的材质会扭曲,这是PS的一大弱点。土星在读取材质是不会发生扭曲,只有在最后显示图形的时候才会出现扭曲。绘制变形后比例正常材质虽然麻烦,但并不困难。PS的做法在材质非常大时,扭曲的影响会相对变小,甚至可以忽略。但实际上PS的内存很小,无法使用如此之大的贴图,所以这个问题无法绕过。. i8 f5 N: d- a) j3 @
PS可以说是一个标准的、教科书式的3D硬件,却没有重视实现上的现实问题。土星虽然是生硬的在一个2D硬件里建立了3D功能,但比PS重视实现上的现实问题。如此看来,双方也没有什么优劣之分。1 F3 i, u6 J, [4 q/ T, J. G
立体多边形(polygon)只是一个概念,而不是什么技术。不是三角形;不是通过UV坐标贴图;不是硬件计算……甚至没有明确的定义。所以,「假多边形」之类的说法在我看来也无法理解。

/ U4 c7 x) o/ S+ A6 ]+ @4 e6 ^9 B

本帖子中包含更多资源

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

×
回复

使用道具 举报

 楼主| 发表于 2025-1-5 02:55:22 | 显示全部楼层
0 w, \+ }3 h7 W, M# P; s7 N  o
SH2的运算速度

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

本帖子中包含更多资源

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

×
回复

使用道具 举报

 楼主| 发表于 2025-1-5 03:04:32 | 显示全部楼层
本帖最后由 n805 于 2025-1-5 03:33 编辑
, N0 q0 J$ m8 h! T/ s$ B; Z- [# ~; v& m3 N+ b& T9 [& I
* t6 q9 \" b# q" l6 v* G5 x
双处理器

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

0 T* Z: Y( Y7 E* o& }1 n: y) @
* j) q4 w* r6 W9 h1 ]3 v1 x  i! H

本帖子中包含更多资源

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

×
回复

使用道具 举报

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

" Y! Q3 G" r: e& I9 [& e
SGL的运作游戏的基本

- O& w+ P. N! M8 j4 x; h0 \; e3 \
" z4 @" W% B/ V+ `在讨论SGL之前,先和大家说明一下制作一个游戏的基本吧。不管是红白机还是MEGADRIVE还是PS都是共通的基本。, {1 S2 V$ r  a  R
先想象一下《魂斗罗》吧。无论是通过手柄操纵的人物,射出的子弹,还是运动的敌人,都是程序在控制他们。游戏开始后只有自己操控的人物的时候和BOSS带着一帮小怪大闹的时候的运算处理量是不同的。
  {0 a! ~2 n9 \5 v( L! E. v' @当然程序的处理速度也会有变化。游戏开始当初,处理很快就会结束。但BOSS战时,程序处理就需要相当长的时间。
( o+ ~7 `: p; c( `8 X但是,游戏并不会在开始的时候运行的飞快,BOSS战时运行的龟慢(红白机是性能过低所以才会如此。有种可爱的拼命感,所以个人挺喜欢)。这是因为游戏会根据「画面绘制的实际」来调整游戏的处理速度。. v2 `4 J4 ]0 W6 b3 `5 B. k
电视的NTSC(日本的游戏机,日本的电视信号规格)信号制式,一秒钟描绘60帧画面,游戏的程序以描绘1帧的时间为基准处理。具体地说就是,游戏的程序必须在1/60秒内完成处理。程序提早完成处理也不会有问题。处理结束后,CPU会等待画面绘制结束。
: d. A/ i- K4 x$ g0 |) \
/ i5 U& P4 N5 S/ S* G2 v2 N
& j. k3 x1 j7 l
等待画面绘制完成的处理是以一定的速度进行。画面绘制处理完成后,再输出新的画面,并进行下一轮的游戏程序处理。如此一般,游戏的画面就会完整,漂亮的出现在电视机上。& D3 d/ a( \+ Y; H  ?" g6 Z
顶点坐标演算* b% Z; ~$ r" D. M
运用SGL制作游戏,只要遵循刚才提到的「基本」就可以。游戏的处理过程中,想要展现多边形的话,只需要向SGL指示「在某个立体坐标系中放置多边形」。: U& v) q2 m4 r6 K4 U/ r( [
程序猿不需要去在乎顶点坐标演算的过程内容和结果。事实上,也无法知道。
1 F, ]+ C: u& N" C向SGL指示显示多边形,程序猿会以为「SGL会进行计算」。试着不然,SGL根本就不会去进行多边形演算,仅仅试将输入的值放进内存,随即重新开始处理游戏程序。所以程序猿无法通过SGL来访问顶点坐标演算的过程、内容和结果。) a$ L$ e/ L( F
进行顶点坐标演算的是副CPU。就是大家以为没有在工作的那个副CPU。一个员工放在工作岗位上,没有一个老板会容忍这个员工每天只会打瞌睡、划手机、吃垃圾外卖。副CPU在发现内存中有数据之后就会立刻对数据进行顶点坐标演算。
( `: x! r, {2 _; l( u刚才提到过顶点坐标演算很复杂,对于SH2来说是一个很大的负担。将顶点坐标运算交给副CPU,主CPU会继续进行游戏程序的处理。7 y9 z  @8 [* ?6 k/ T1 U
游戏程序处理就代表被显示的多边形数据也源源不断的被生成。副CPU根本就没有空闲。
/ B: v8 Y9 p  G" m/ m; r4 A事实上,按照这个方法进行,处理时间依旧不够。对于副CPU而言工作量过多,主CPU往往会先完成处理。主CPU在完成游戏程序的处理之后,会等待画面绘制完成。这时,程序猿会对SGL设定激发SGL的功能指令「停止处理等待画面绘制完成」。对于程序猿来说CPU已经停止了,而SGL会依旧保持活跃。
: ]' Z( B/ [) r. Y$ n" T5 L6 A仅依靠副CPU的算力,时间不够。在主CPU完成处理后SGL就会让主CPU也参与顶点坐标演算。顶点坐标演算结束后,SGL会继续调用两个CPU,将计算结果沿着Z轴排列,并处理成图像引擎VDP1可以调用的命令符。  h3 j( [$ W6 M* _+ U. R& M
在这一切都完成之后,才会进入「等待画面绘制完成」的状态。主CPU会重新开始处理游戏程序;副CPU将处理画面输出的问题。" L2 X7 b! m( v9 d3 p- C
总体的思路就是,主CPU负责处理游戏程序,副CPU负责其他,在主CPU处理完游戏程序后会辅助副CPU。) Z5 f1 d( X( `$ @, ]. @; q; `3 C
副CPU的运行指令
' o# \$ S3 m5 b3 a& [3 j6 }2 HSGL中有一个明确的指令「让副CPU运行程序」。这个指令会将放置程序的内存地址交给副CPU,副CPU在空闲时会进行处理。因为是空闲时进行处理,所以也无从知晓这个程序何时会被处理。如果是3D游戏,副CPU也很难会有空闲。世嘉提供的信息也很少,所以也很少会有游戏使用这个功能。) w3 P8 t- [' L
所以「很多游戏都只会用到一个CPU」这样一个误解,应该是来源于此。3 |( x7 j: V" h; _
SGL本身也不是3D游戏专用的运行库,SGL也可以用来制作2D游戏。而在处理2D游戏时,副CPU也需要处理画面输出、音乐处理等工作。不管怎样,与「很多游戏都只会用到一个CPU」谣言相反,大部分游戏都会用到两个CPU。" _  w" B( r0 d- |: t5 b
有一种说法「两个CPU无法获得两倍的性能,大概就是1.2倍到1.4倍,撑死1.8倍」。这是必然。如今的PC/AT电脑也无法通过增加一个CPU来获得两倍的性能。问题的根本在于总线带宽。有两个CPU,两个CPU之间就会抢夺总线带宽,甚至会导致一方的CPU对内存或者其他存储器或者元件进行访问而停止工作。( F! `( J- q  g# s' x) \3 Q9 ?3 ^
SGL则会将两个CPU进行合理分工,让副CPU主要进行顶点坐标演算。毕竟和PS相比土星最大的弱点是不擅长顶点坐标演算。SGL的顶点坐标演算部分完全由汇编编写,可以完整地收纳在缓存了并尽可能高速运作。7 J( H$ T4 |" v
在使用SGL时,副CPU不会占用总线来对程序进行访问。也就是说副CPU不会妨碍主CPU的工作。虽然副CPU在进行顶点坐标演算时会占用总线访问内存,但大部分时间还是在运算坐标。所以抢夺总线带宽的事情基本不会发生。主CPU在完成游戏程序的处理后会进入到等待状态。有SGL的存在,在主CPU完成工作后,SGL会继续调用主CPU,合理进行工作分配。: ]7 }$ `  e& ^5 `- g
可以说世嘉尽了最大的努力去发挥双CPU的能力。
: ^8 r% O% Y. f) ]6 }

本帖子中包含更多资源

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

×
回复

使用道具 举报

 楼主| 发表于 2025-1-5 03:16:53 | 显示全部楼层
6 R! e- O; V, }2 d6 R, ^
世嘉的主机也就像泡沫经济一样,经历了成长,繁荣,永远走在技术的前列,却在某一天突然消失了。一个时代结束了。

本帖子中包含更多资源

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

×
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-5-7 03:05 , Processed in 0.106750 second(s), 13 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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