PSP硬件彻底分析 |
发布日期:2009-02-24 |
|
|
■ PSP硬件彻底分析
高性能的CPU与内嵌在CPU核心内的DRAM
为了使PSP的3D机能接近PS2的水平,SONY为PSP配备了两颗R4000 CPU内核.R4000是MIPS技术公司开发的RISC(精简指令集)处理器. 两颗R4000 之一的PSP CPU Core处理器频率为333MHZ, 其具有128BIT的系统总线(注:也就是与内存或外部电路的连接总线),通过它与Media Engine、Main Memory、Graphics Core1 、2、VME (Virtual Mobile Engine)以及DMAC[DMA是Direct Memory Access的缩写。其意思是“存储器直接访问”.它是指一种高速的数据传输操作,允许在外部设备和存储器之间直接读写数据,即不通过CPU,也不需要CPU干预。整个数据传输操作在DMAC--存储器直接访问控制器的控制下进行的。CPU除了在数据传输开始和结束时作一点处理外,在传输过程中CPU可以进行其它的工作。这样,在大部分时间里,CPU和输入输出都处在并行操作。
因此,使整个计算机系统的效率大大提高.它在PSP中的作用是通过它让CPU与Optical Disc System、I/O设备相连来读取和处理Optical Disc System、I/O设备(如手柄、显示屏、U**等接口都是I/O设备)的信息]连接 . PSP CPU Core1集成了I-Cache(指令缓存具体容量未知)、D-Cache(数据缓存 具体容量未知)与FPU、VFPU(Vector Unit).其中PSP CPU Core的3D计算能力主要来源FPU与VFPU这两个矢量单元,其浮点运算能力已经达到的2.6GFlops(是在有3D-CG Extended Instructions-3D扩展指令集参加工作时的数值),这已经是达到P3 733的浮点运算量了(这是加了SEE指令集工作的情况数值是2.93GFLOPS(SSE))很多人说PS2的GS支持的那么少,为什么游戏中有那么多不支持的其实就是因为EE的FPU与VUO+VU1的功劳,使EE的总浮点运算能力达到了6.2 GFLOPS的浮点能力.而PSP的VFPU就相当于EE的VUO+VU1,所以别看Graphics Core不支持很多,但是可以依仗FPU与VFPU来实现不支持的,很多人说为什么不在Graphics Core中支持呢,因为现在的技术还没有让GPU可以模拟的能力,即使是nVIDIA的GeForce系列还是ATI的RADEON系列都只是对其固有的进行编程控制.对新增加的,如新的DIRECTX版本加入新就必须换新的支持这个DIRECTX版本的显卡,而游戏机不能象PC的显卡那样每6-8个月一换代。而且 GPU的浮点运算虽然比CPU高,但却是有局限性的。所以SONY的选择还是很明智的-用高浮点运算的CPU来模拟.
PSP CPU Core的作用是用来进行先期的多边形生成等3D运算与模拟部分的,它的内核集成30MB DRAM 主内存这样可以容纳更多的多边形数据与高解析度的纹理, 主内存带宽为2.6GB/sec. PSP CPU Core利用其128位的带宽的总线与DRAM相连,充分发挥PSP CPU Core的超高性能(注:虽然是内嵌试内存,但仍然需要总线与之相连)。内嵌式内存的好处是CPU可以直接访问存储器,减少内存的反应时间,而且提供高带宽. 另外一颗R4000被称做Media Engine-媒体引擎,顾名思义他是做媒体解压 处理声音和I/O管理等,而不是做3D运算的.所以它不能参加3D运算,很多网站说2颗CPU可以协同进行3D运算是错的。因为其没有集成FPU VFPU(也不排除是我理解错误)。它的频率同样是333MHZ、和PSP CPU Core共享128BIT的前端总线、内嵌了2MB DRAM, DRAM带宽为2.6GB/sec,它主要作为媒体解压缓冲与音频存储器。MPEG4的解压就是它来完成.
Graphics Core
经验的积累成熟的PSP Graphics Core
为了让PSP的3D机能更为协调SONY为PSP配备了与CPU同样数量的GPU。Graphics Core 1主要是几何运算。
3D Curved Su***ce+3D Polygon (支持3D曲面运算和3D多边形引擎)Compressed Texture纹理压缩(这可是很重要的技术,这个技术可以在有限的显存与内存空间内,存储更多的纹理,纹理压缩还能减少主内存的使用率。因为当显存不够时,也就是纹理溢出时系统会把纹理存储在主内存中。
纹理压缩还能有效的减低带宽占用率。由于SONY没有说明具体的压缩比,估计是S3TC的纹理压缩技术。在这里介绍一下S3TC的纹理压缩比在8BIT色下是2:1 16BIT色下是4:1 24BIT色下是6:1) Hardware Clipping硬件剪裁(简单的说,裁剪就是把物体落在屏幕外面的部分去掉,这样就不需要处理看不到的东西,从而节省了处理量) Morphing、Bone分别是变形与骨骼动画.它们是很相似的技术,都是让角色的动作更流畅, Morphing使开发人员能够创造海浪和水波等真实的表面或使三角形组从一种形状变成另一种形状,从而带来更平滑的骨胳动作效果[右1是变形的示例图]; Bone(8) 使编程人员可以在每个关节处使用8根“骨胳”来创造真实的角色动作,而且关节运动时不会发生变形使角色的移动更为真实自然.Hardware Tessellator它是一种硬件多边形细分功能, Tessellator使用高顺序表面几何使游戏的原始简单模型变得更圆滑更细致。它被加入到引擎后我们就可以在程序中使用LOD技术(或称为HIGH ORDER SUFACE),根据对象与观察者的距离,使用线框密度不同的3D模型.由于LOD的引入,场景中的多边形数量就会比先前大幅度的降低,而画面的画质却不会有明显的下降,并且硬件剪裁的工作也可以由于多边形的减少而效能提高。它是在DX8.0、OPENGL 1.4时加入到DX与OPENGL中的,家用游戏机中只有X-BOX的NV2A硬件支持这个功能。不过这个技术在PC GAME中没有广泛的应用,虽然说是硬件支持可是在PC GAME中打开此计算功能是没有效果的[代表的此类技术如ATI的TRUFORM] 。
Graphics Core 1支持Bezier B-Spline(NURBS)(贝塞尔曲线 NURB*建模功能) 、** 4×4,16×16,64×64 sub-division是细分模式(N*N越大曲线的表面越光滑)、reduce program/data与reduce memory footprint & bus traffic(它们是类似于ATI的HZPER技术,可以用来降低带宽占用率.其具体工作模式没有详细说明)。
PSP Graphics Core 1看起来更象一个几何运算器.个人感觉其功能更接近PC 显卡的Vertex Shader顶点着色器[注:什么是Vertex Shader(顶点着色器)?——Vertex(顶点)是计算机图形学中的最基本元素,三个顶点可以连接成一个三角形形成一个面,在三维空间中,每个顶点都拥有自己的坐标(xyzw)和颜色值等数据,Vertex Shader(顶点着色器)在软件层上来说就是一系列对顶点数据进行操作处理的指令程序,在硬件上就是执行这些Vertex Shader程序的处理单元], 但功能可能稍弱一些.
Graphics Core 2的名称叫Rendering Engine+Su***ce Engine (渲染引擎与曲面引擎)其主要的作用是渲染与硬件T&L(硬件几何变换和光照处理)这项技术可以是物体在不增加多边形的前提下使3D模型表面更圆滑 更准确 更生动和即时处理光源,使光源更真实可以产生带有反射性质的光源效果,它在PS2中是由EE的VUO+VU1完成.它还支持曲面渲染. Graphics Core1和2都是128BIT核心,工作频率都是166MHZ以256BIT数据总线宽连接其内嵌式的4M DRAM。
DRAM带宽为5.3GB/sec。Graphics core2象素填充率为每秒6亿6千4百万,每个时钟周期的纹理贴图数为4,像素管线为4,工作模式为4*1即每一个像素流水线所配的TMU单元(纹理映射单元)为1.很多人认为这样PSP在有多纹理时象素填充率下降,这就不用但心了,没想到Graphics Core2竟然支持Pixel Shader(但是版本就不知道了)[注:什么是Pixel Shader(像素着色器)——在Vertex(顶点)被vertex shader处理完后,就会交给setup(设置)引擎转换为屏幕上的二维坐标点(称作fragment(OPENGL中的叫法)或者pixel(D3D中的叫法)-即像素),像素包含的信息类似于顶点,也是有色彩、深度坐标等资料.Pixel Shader(像素着色器)在软件层上来说就是对像素资料进行操作处理的指令程序,在硬件上就是执行Pixel Shader(顶点着色器)的像素单元.] .Pixel shader主要负责生成和合成Texture(贴图), 所以就不用多个TMU 单元来合成贴图.同时PSP使对光源的控制达到了象素级使PSP可以更好的表现水、金属表面反光等物理了。
Vertex Shader与Pixel Shader这两项在家用机中只有X-BOX的NV2A支持,在游戏中得到广泛支持如光环中的水、主角突击队员身上的盔甲的金属感.这可是PS2都没有的机能.示例图图如左2图.Graphics Core2多边形数为33Mpolygon/sec(T&L)为PS2的一半.不过别看性能比PS2差很多但是呢不要忘了PSP的解析度480*272且是在4.5寸屏上,即使多边形数与纹理尺寸是原来的1/3你也是看不出来的^_^.它们才是协同工作的.输出也是Graphics Core 2的工作,其输出24BIT色,输出信号为RGBA这样有更好的颜色还原.[注:不排除Graphics Core2采用了类似NVIDIA Shading Rasterizer (NSR)技术,NSR使真实材料属性尽可能达到 per-pixelshading效果,也就是Pixel Shader处理Pixel Sha ding达到的效果(但只是接近而已).NSR可以对每个像素进行动态阴影处理成为可能,使复杂的画面现在有了丰富的细节;像素 bump mapping 等功能可以用来实现更精彩的视觉效果,如凹凸贴图.NSR 允许软件开发人员实时按像素计算照明特性.以往的图形解决方案使用照明贴图或顶点照明时,由于这种方法会导致为提高性能而损失质量和度的问题,迫使时用户必须在实时的rendering 和全功能渲染之间进行选择.开发人员不必再依靠基本的多纹理处理技术来欺骗自己的眼睛,因为实时按像素进行阴影处理的功能使3D元素在外观和行为方面都和现实生活的对应物十分相似。所以PSP在有多纹理时象素填充率不会下降。利用NSR,木材的纹路看起来更*真,照明物体不仅在强光下发出微弱的光芒,还可以照射出*真的阴影,并且使水面的涟漪和波浪更加自然。按像素进行照明的功能不仅比过去使用的所有照明方法更加和灵活,而且不会降低实时性能. |
|
|
|