Re:那些年我們一起玩過的PSP
高性能的CPU與內(nèi)嵌在CPU核心內(nèi)的DRAM 為了使PSP的3D機(jī)能接近PS2的水平,SONY為PSP配備了兩顆R4000 CPU內(nèi)核.R4000是MIPS技術(shù)公司開發(fā)的RISC(精簡指令集)處理器. 兩顆R4000 之一的PSP CPU Core處理器頻率為333MHZ, 其具有128BIT的系統(tǒng)總線(注:也就是與內(nèi)存或外部電路的連接總線),通過它與Media Engine、Main Memory、Graphics Core1 &2、VME (Virtual Mobile Engine)以及DMAC。整個數(shù)據(jù)傳輸操作在DMAC--存儲器直接訪問控制器的控制下進(jìn)行的。CPU除了在數(shù)據(jù)傳輸開始和結(jié)束時作一點處理外,在傳輸過程中CPU可以進(jìn)行其它的工作。這樣,在大部分時間里,CPU和輸入輸出都處在并行操作。 因此,使整個計算機(jī)系統(tǒng)的效率大大提高.它在PSP中的作用是通過它讓CPU與Optical Disc System、I/O設(shè)備相連來讀取和處理Optical Disc System、I/O設(shè)備(如手柄、顯示屏、U**等接口都是I/O設(shè)備)的信息]連接 . PSP CPU Core1集成了I-Cache(指令緩存具體容量未知)、D-Cache(數(shù)據(jù)緩存 具體容量未知)與FPU、VFPU(Vector Unit).其中PSP CPU Core的3D計算能力主要來源FPU與VFPU這兩個矢量單元,其浮點運算能力已經(jīng)達(dá)到的2.6GFlops(是在有3D-CG Extended Instructions-3D擴(kuò)展指令集參加工作時的數(shù)值),這已經(jīng)是達(dá)到P3 733的浮點運算量了(這是加了SEE指令集工作的情況數(shù)值是2.93GFLOPS(SSE))很多人說PS2的GS支持的特效那么少,為什么游戲中有那么多不支持的特效其實就是因為EE的FPU與VUO+VU1的功勞,使EE的總浮點運算能力達(dá)到了6.2 GFLOPS的浮點能力.而PSP的VFPU就相當(dāng)于EE的VUO+VU1,所以別看Graphics Core不支持很多特效,但是可以依仗FPU與VFPU來實現(xiàn)不支持的特效,很多人說為什么不在Graphics Core中支持呢,因為現(xiàn)在的技術(shù)還沒有讓GPU可以模擬特效的能力,即使是nVIDIA的GeForce系列還是ATI的RADEON系列都只是對其固有的特效進(jìn)行編程控制.對新增加的特效,如新的DIRECTX版本加入新特效就必須換新的支持這個DIRECTX版本的顯卡,而游戲機(jī)不能象PC的顯卡那樣每6-8個月一換代。而且 GPU的浮點運算雖然比CPU高,但卻是有局限性的。所以SONY的選擇還是很明智的-用高浮點運算的GPU來模擬特效。 PSP CPU Core的作用是用來進(jìn)行先期的多邊形生成等3D運算與模擬部分特效的,它的內(nèi)核集成30MB DRAM 主內(nèi)存這樣可以容納更多的多邊形數(shù)據(jù)與高解析度的紋理, 主內(nèi)存帶寬為2.6GB/sec. PSP CPU Core利用其128位的帶寬的總線與DRAM相連,充分發(fā)揮PSP CPU Core的超高性能(注:雖然是內(nèi)嵌式內(nèi)存,但仍然需要總線與之相連)。內(nèi)嵌式內(nèi)存的好處是CPU可以直接訪問存儲器,減少內(nèi)存的反應(yīng)時間,而且提供高帶寬. 另外一顆R4000被稱做Media Engine-媒體引擎,顧名思義他是做媒體解壓 處理聲音和I/O管理等,而不是做3D運算的.所以它不能參加3D運算,很多網(wǎng)站說2顆CPU可以協(xié)同進(jìn)行3D運算是錯的。因為其沒有集成FPU VFPU(也不排除是我理解錯誤)。它的頻率同樣是333MHZ、和PSP CPU Core共享128BIT的前端總線、內(nèi)嵌了2MB DRAM, DRAM帶寬為2.6GB/sec,它主要作為媒體解壓緩沖與音頻存儲器。MPEG4的解壓就是它來完成。
Graphics Core
經(jīng)驗的積累成熟的PSP Graphics Core 為了讓PSP的3D機(jī)能更為協(xié)調(diào)SONY為PSP配備了與CPU同樣數(shù)量的GPU。Graphics Core 1主要是幾何運算。 3D Curved Suce 3D Polygon (支持3D曲面運算和3D多邊形引擎)Compressed Texture紋理壓縮(這可是很重要的技術(shù),這個技術(shù)可以在有限的顯存與內(nèi)存空間內(nèi),存儲更多的紋理,紋理壓縮還能減少主內(nèi)存的使用率。因為當(dāng)顯存不夠時,也就是紋理溢出時系統(tǒng)會把紋理存儲在主內(nèi)存中。 紋理壓縮還能有效的減低帶寬占用率。由于SONY沒有說明具體的壓縮比,估計是S3TC的紋理壓縮技術(shù)。在這里介紹一下S3TC的紋理壓縮比在8BIT色下是2:1 16BIT色下是4:1 24BIT色下是6:1) Hardware Clipping硬件剪裁(簡單的說,裁剪就是把物體落在屏幕外面的部分去掉,這樣就不需要處理看不到的東西,從而節(jié)省了處理量) Morphing、Bone分別是變形與骨骼動畫.它們是很相似的技術(shù),都是讓角色的動作更流暢, Morphing使開發(fā)人員能夠創(chuàng)造海浪和水波等真實的表面或使三角形組從一種形狀變成另一種形狀,從而帶來更平滑的骨胳動作效果[右1是變形的示例圖]; Bone(8) 使編程人員可以在每個關(guān)節(jié)處使用8根“骨胳”來創(chuàng)造真實的角色動作,而且關(guān)節(jié)運動時不會發(fā)生變形使角色的移動更為真實自然.Hardware Tessellator它是一種硬件多邊形細(xì)分功能, Tessellator使用高順序表面幾何使游戲的原始簡單模型變得更圓滑更細(xì)致。它被加入到引擎后我們就可以在程序中使用LOD技術(shù)(或稱為HIGH ORDER SUFACE),根據(jù)對象與觀察者的距離,使用線框密度不同的3D模型.由于LOD的引入,場景中的多邊形數(shù)量就會比先前大幅度的降低,而畫面的畫質(zhì)卻不會有明顯的下降,并且硬件剪裁的工作也可以由于多邊形的減少而效能提高。它是在DX8.0、OPENGL 1.4時加入到DX與OPENGL中的,家用游戲機(jī)中只有X-BOX的NV2A硬件支持這個功能。不過這個技術(shù)在PC GAME中沒有廣泛的應(yīng)用,雖然說是硬件支持可是在PC GAME中打開此計算功能是沒有效果的[代表的此類技術(shù)如ATI的TRUFORM] 。 Graphics Core 1支持Bezier B-Spline(NURBS)(貝塞爾曲線 NURB*建模功能) 、 4×4,16×16,64×64 sub-division是細(xì)分模式(N*N越大曲線的表面越光滑)、reduce program/data與reduce memory footprint & bus traffic(它們是類似于ATI的HZPER技術(shù),可以用來降低帶寬占用率.其具體工作模式?jīng)]有詳細(xì)說明)。 PSP Graphics Core 1看起來更象一個幾何運算器.個人感覺其功能更接近PC 顯卡的Vertex Shader頂點著色器[注:什么是Vertex Shader(頂點著色器)——Vertex(頂點)是計算機(jī)圖形學(xué)中的最基本元素,三個頂點可以連接成一個三角形形成一個面,在三維空間中,每個頂點都擁有自己的坐標(biāo)(xyzw)和顏色值等數(shù)據(jù),Vertex Shader(頂點著色器)在軟件層上來說就是一系列對頂點數(shù)據(jù)進(jìn)行操作處理的指令程序,在硬件上就是執(zhí)行這些Vertex Shader程序的處理單元], 但功能可能稍弱一些。 Graphics Core 2的名稱叫Rendering Engine Suce Engine (渲染引擎與曲面引擎)其主要的作用是渲染與硬件T&L(硬件幾何變換和光照處理)這項技術(shù)可以是物體在不增加多邊形的前提下使3D模型表面更圓滑 更準(zhǔn)確 更生動和即時處理光源,使光源更真實可以產(chǎn)生帶有反射性質(zhì)的光源效果,它在PS2中是由EE的VUO+VU1完成.它還支持曲面渲染. Graphics Core1和2都是128BIT核心,工作頻率都是166MHZ以256BIT數(shù)據(jù)總線寬連接其內(nèi)嵌式的4M DRAM。 DRAM帶寬為5.3GB/sec。Graphics core2象素填充率為每秒6億6千4百萬,每個時鐘周期的紋理貼圖數(shù)為4,像素管線為4,工作模式為4*1即每一個像素流水線所配的TMU單元(紋理映射單元)為1.很多人認(rèn)為這樣PSP在有多紋理時象素填充率下降,這就不用但心了,沒想到Graphics Core2竟然支持Pixel Shader(但是版本就不知道了)[注:什么是Pixel Shader(像素著色器)——在Vertex(頂點)被vertex shader處理完后,就會交給setup(設(shè)置)引擎轉(zhuǎn)換為屏幕上的二維坐標(biāo)點(稱作fragment(OPENGL中的叫法)或者pixel(D3D中的叫法)-即像素),像素包含的信息類似于頂點,也是有色彩、深度坐標(biāo)等資料.Pixel Shader(像素著色器)在軟件層上來說就是對像素資料進(jìn)行操作處理的指令程序,在硬件上就是執(zhí)行Pixel Shader(頂點著色器)的像素單元] Pixel shader主要負(fù)責(zé)生成特效和合成Texture(貼圖), 所以就不用多個TMU 單元來合成貼圖.同時PSP使對光源的控制達(dá)到了象素級使PSP可以更好的表現(xiàn)水、金屬表面反光等物理特效了。 Vertex Shader與Pixel Shader這兩項在家用機(jī)中只有X-BOX的NV2A支持,在游戲中得到廣泛支持如光環(huán)中的水、主角突擊隊員身上的盔甲的金屬感.這可是PS2都沒有的高級機(jī)能.示例圖圖如左2圖.Graphics Core2最大多邊形數(shù)為33Mpolygon/sec(T&L)為PS2的一半.不過別看性能比PS2差很多但是呢不要忘了PSP的解析度480*272且是在4.5寸屏上,即使多邊形數(shù)與紋理尺寸是原來的1/3你也是看不出來的^_^ 。它們才是協(xié)同工作的.輸出也是Graphics Core 2的工作,其最大輸出24BIT色,輸出信號為RGBA這樣有更好的顏色還原.[注:不排除Graphics Core2采用了類似NVIDIA Shading Rasterizer (NSR)技術(shù),NSR使真實材料屬性盡可能達(dá)到 per-pixelshading效果,也就是Pixel Shader處理Pixel Sha ding達(dá)到的效果(但只是接近而已).NSR可以對每個像素進(jìn)行動態(tài)陰影處理成為可能,使復(fù)雜的畫面現(xiàn)在有了豐富的細(xì)節(jié);像素 bump mapping 等功能可以用來實現(xiàn)更精彩的視覺效果,如凹凸貼圖.NSR 允許軟件開發(fā)人員實時按像素計算照明特性.以往的圖形解決方案使用照明貼圖或頂點照明時,由于這種方法會導(dǎo)致為提高性能而損失質(zhì)量和精確度的問題,迫使時用戶必須在實時的rendering 和全功能渲染之間進(jìn)行選擇.開發(fā)人員不必再依靠基本的多紋理處理技術(shù)來欺騙自己的眼睛,因為實時按像素進(jìn)行陰影處理的功能使3D元素在外觀和行為方面都和現(xiàn)實生活的對應(yīng)物十分相似。所以PSP在有多紋理時象素填充率不會下降。利用NSR,木材的紋路看起來更*真,照明物體不僅在強(qiáng)光下發(fā)出微弱的光芒,還可以照射出*真的陰影,并且使水面的漣漪和波浪更加自然。按像素進(jìn)行照明的功能不僅比過去使用的所有照明方法更加精確和靈活,而且不會降低實時性能。