EMU618社区

 找回密码
 立即注册
搜索
查看: 5903|回复: 9

[分享] 硬件知识扫盲贴(想学的都进来看看)

[复制链接]

该用户从未签到

发表于 2007-1-13 14:54:03 | 显示全部楼层 |阅读模式
转自:游侠NETSHOW论坛 作者:capcomchen

这里提供一些与游戏有关的硬件知识,有兴趣的可以慢慢看

索引
二楼:显卡相关知识
三楼:CPU相关知识
四楼:内存相关知识

该用户从未签到

 楼主| 发表于 2007-1-13 14:54:41 | 显示全部楼层
★★★★★显卡相关知识★★★★★

PCI Express
PCI Express(以下简称PCI-E)采用了目前业内流行的点对点串行连接,比起PCI以及更早期的计算机总线的共享并行架构,每个设备都有自己的专用连接,不需要向整个总线请求带宽,而且可以把数据传输率提高到一个很高的频率,达到PCI所不能提供的高带宽。相对于传统PCI总线在单一时间周期内只能实现单向传输,PCI-E的双单工连接能提供更高的传输速率和质量,它们之间的差异跟半双工和全双工类似。

  PCI-E的接口根据总线位宽不同而有所差异,包括X1、X4、X8以及X16,而X2模式将用于内部接口而非插槽模式。PCI-E规格从1条通道连接到32条通道连接,有非常强的伸缩性,以满足不同系统设备对数据传输带宽不同的需求。此外,较短的PCI-E卡可以插入较长的PCI-E插槽中使用,PCI-E接口还能够支持热拔插,这也是个不小的飞跃。PCI-E X1的250MB/秒传输速度已经可以满足主流声效芯片、网卡芯片和存储设备对数据传输带宽的需求,但是远远无法满足图形芯片对数据传输带宽的需求。 因此,用于取代AGP接口的PCI-E接口位宽为X16,能够提供5GB/s的带宽,即便有编码上的损耗但仍能够提供约为4GB/s左右的实际带宽,远远超过AGP 8X的2.1GB/s的带宽。

    尽管PCI-E技术规格允许实现X1(250MB/秒),X2,X4,X8,X12,X16和X32通道规格,但是依目前形式来看,PCI-E X1和PCI-E X16已成为PCI-E主流规格,同时很多芯片组厂商在南桥芯片当中添加对PCI-E X1的支持,在北桥芯片当中添加对PCI-E X16的支持。除去提供极高数据传输带宽之外,PCI-E因为采用串行数据包方式传递数据,所以PCI-E接口每个针脚可以获得比传统I/O标准更多的带宽,这样就可以降低PCI-E设备生产成本和体积。另外,PCI-E也支持高阶电源管理,支持热插拔,支持数据同步传输,为优先传输数据进行带宽优化。

    在兼容性方面,PCI-E在软件层面上兼容目前的PCI技术和设备,支持PCI设备和内存模组的初始化,也就是说过去的驱动程序、操作系统无需推倒重来,就可以支持PCI-E设备。目前PCI-E已经成为显卡的接口的主流,不过早期有些芯片组虽然提供了PCI-E作为显卡接口,但是其速度是4X的,而不是16X的,例如VIA PT880 Pro和VIA PT880 Ultra,当然这种情况极为罕见。


DirectX
DirectX并不是一个单纯的图形API,它是由微软公司开发的用途广泛的API,它包含有Direct Graphics(Direct 3D+Direct Draw)、Direct Input、Direct Play、Direct Sound、Direct Show、Direct Setup、Direct Media Objects等多个组件,它提供了一整套的多媒体接口方案。只是其在3D图形方面的优秀表现,让它的其它方面显得暗淡无光。DirectX开发之初是为了弥补Windows 3.1系统对图形、声音处理能力的不足,而今已发展成为对整个多媒体系统的各个方面都有决定性影响的接口。

DirectX 5.0
    微软公司并没有推出DirectX 4.0,而是直接推出了DirectX 5.0。此版本对Direct3D做出了很大的改动,加入了雾化效果、Alpha混合等3D特效,使3D游戏中的空间感和真实感得以增强,还加入了S3的纹理压缩技术。同时,DirectX 5.0在其它各组件方面也有加强,在声卡、游戏控制器方面均做了改进,支持了更多的设备。因此,DirectX发展到DirectX 5.0才真正走向了成熟。此时的DirectX性能完全不逊色于其它3D API,而且大有后来居上之势。

DirectX 6.0
    DirectX 6.0推出时,其最大的竞争对手之一Glide,已逐步走向了没落,而DirectX则得到了大多数厂商的认可。DirectX 6.0中加入了双线性过滤、三线性过滤等优化3D图像质量的技术,游戏中的3D技术逐渐走入成熟阶段。

DirectX 7.0
    DirectX 7.0最大的特色就是支持T&L,中文名称是“坐标转换和光源”。3D游戏中的任何一个物体都有一个坐标,当此物体运动时,它的坐标发生变化,这指的就是坐标转换;3D游戏中除了场景+物体还需要灯光,没有灯光就没有3D物体的表现,无论是实时3D游戏还是3D影像渲染,加上灯光的3D渲染是最消耗资源的。虽然OpenGL中已有相关技术,但此前从未在民用级硬件中出现。在T&L问世之前,位置转换和灯光都需要CPU来计算,CPU速度越快,游戏表现越流畅。使用了T&L功能后,这两种效果的计算用显示卡的GPU来计算,这样就可以把CPU从繁忙的劳动中解脱出来。换句话说,拥有T&L显示卡,使用DirectX 7.0,即使没有高速的CPU,同样能流畅的跑3D游戏。

DirectX 8.0
    DirectX 8.0的推出引发了一场显卡革命,它首次引入了“像素渲染”概念,同时具备像素渲染引擎(Pixel Shader)与顶点渲染引擎(Vertex Shader),反映在特效上就是动态光影效果。同硬件T&L仅仅实现的固定光影转换相比,VS和PS单元的灵活性更大,它使GPU真正成为了可编程的处理器。这意味着程序员可通过它们实现3D场景构建的难度大大降低。通过VS和PS的渲染,可以很容易的宁造出真实的水面动态波纹光影效果。此时DirectX的权威地位终于建成。

DirectX 9.0
    2002年底,微软发布DirectX9.0。DirectX 9中PS单元的渲染精度已达到浮点精度,传统的硬件T&L单元也被取消。全新的VertexShader(顶点着色引擎)编程将比以前复杂得多,新的VertexShader标准增加了流程控制,更多的常量,每个程序的着色指令增加到了1024条。

    PS 2.0具备完全可编程的架构,能对纹理效果即时演算、动态纹理贴图,还不占用显存,理论上对材质贴图的分辨率的精度提高无限多;另外PS1.4只能支持28个硬件指令,同时操作6个材质,而PS2.0却可以支持160个硬件指令,同时操作16个材质数量,新的高精度浮点数据规格可以使用多重纹理贴图,可操作的指令数可以任意长,电影级别的显示效果轻而易举的实现。

    VS 2.0通过增加Vertex程序的灵活性,显著的提高了老版本(DirectX8)的VS性能,新的控制指令,可以用通用的程序代替以前专用的单独着色程序,效率提高许多倍;增加循环操作指令,减少工作时间,提高处理效率;扩展着色指令个数,从128个提升到256个。

    增加对浮点数据的处理功能,以前只能对整数进行处理,这样提高渲染精度,使最终处理的色彩格式达到电影级别。突破了以前限制PC图形图象质量在数学上的精度障碍,它的每条渲染流水线都升级为128位浮点颜色,让游戏程序设计师们更容易更轻松的创造出更漂亮的效果,让程序员编程更容易。

DirectX 9.0c
    与过去的DirectX 9.0b和Shader Model 2.0相比较,DirectX 9.0c最大的改进,便是引入了对Shader Model 3.0(包括Pixel Shader 3.0 和Vertex Shader 3.0两个着色语言规范)的全面支持。举例来说,DirectX 9.0b的Shader Model 2.0所支持的Vertex Shader最大指令数仅为256个,Pixel Shader最大指令数更是只有96个。而在最新的Shader Model 3.0中,Vertex Shader和Pixel Shader的最大指令数都大幅上升至65535个,全新的动态程序流控制、 位移贴图、多渲染目标(MRT)、次表面散射 Subsurface scattering、柔和阴影 Soft shadows、环境和地面阴影 Environmental and ground shadows、全局照明 (Global illumination)等新技术特性,使得GeForce 6、GeForce7系列以及Radeon X1000系列立刻为新一代游戏以及具备无比真实感、幻想般的复杂的数字世界和逼真的角色在影视品质的环境中活动提供强大动力。

    因此DirectX 9.0c和Shader Model 3.0标准的推出,可以说是DirectX发展历程中的重要转折点。在DirectX 9.0c中,Shader Model 3.0除了取消指令数限制和加入位移贴图等新特性之外,更多的特性都是在解决游戏的执行效率和品质上下功夫,Shader Model 3.0诞生之后,人们对待游戏的态度也开始从过去单纯地追求速度,转变到游戏画质和运行速度两者兼顾。因此Shader Model 3.0对游戏产业的影响可谓深远。


OpenGL   
OpenGL是个专业的3D程序接口,是一个功能强大,调用方便的底层3D图形库。OpenGL的前身是SGI公司为其图形工作站开发的IRIS GL。IRIS GL是一个工业标准的3D图形软件接口,功能虽然强大但是移植性不好,于是SGI公司便在IRIS GL的基础上开发了OpenGL。OpenGL的英文全称是“Open Graphics Library”,顾名思义,OpenGL便是“开放的图形程序接口”。虽然DirectX在家用市场全面领先,但在专业高端绘图领域,OpenGL是不能被取代的主角。

    OpenGL是个与.硬件无关的软件接口,可以在不同的平台如Windows 95、Windows NT、Unix、Linux、MacOS、OS/2之间进行移植。因此,支持OpenGL的软件具有很好的移植性,可以获得非常广泛的应用。由于OpenGL是3D图形的底层图形库,没有提供几何实体图元,不能直接用以描述场景。但是,通过一些转换程序,可以很方便地将AutoCAD、3DS等3D图形设计软件制作的DFX和3DS模型文件转换成OpenGL的顶点数组。

    在OpenGL的基础上还有Open Inventor、Cosmo3D、Optimizer等多种高级图形库,适应不同应用。其中,Open Inventor应用最为广泛。该软件是基于OpenGL面向对象的工具包,提供创建交互式3D图形应用程序的对象和方法,提供了预定义的对象和用于交互的事件处理模块,创建和编辑3D场景的高级应用程序单元,有打印对象和用其它图形格式交换数据的能力。

    OpenGL的发展一直处于一种较为迟缓的态势,每次版本的提高新增的技术很少,大多只是对其中部分做出修改和完善。1992年7月,SGI公司发布了OpenGL的1.0版本,随后又与微软公司共同开发了Windows NT版本的OpenGL,从而使一些原来必须在高档图形工作站上运行的大型3D图形处理软件也可以在微机上运用。1995年OpenGL的1.1版本面市,该版本比1.0的性能有许多提高,并加入了一些新的功能。其中包括改进打印机支持,在增强元文件中包含OpenGL的调用,顶点数组的新特性,提高顶点位置、法线、颜色、色彩指数、纹理坐标、多边形边缘标识的传输速度,引入了新的纹理特性等等。OpenGL 1.5又新增了“OpenGL Shading Language”,该语言是“OpenGL 2.0”的底核,用于着色对象、顶点着色以及片断着色技术的扩展功能。

    OpenGL 2.0标准的主要制订者并非原来的SGI,而是逐渐在ARB中占据主动地位的3Dlabs。2.0版本首先要做的是与旧版本之间的完整兼容性,同时在顶点与像素及内存管理上与DirectX共同合作以维持均势。OpenGL 2.0将由OpenGL 1.3的现有功能加上与之完全兼容的新功能所组成(如图一)。借此可以对在ARB停滞不前时代各家推出的各种纠缠不清的扩展指令集做一次彻底的精简。此外,硬件可编程能力的实现也提供了一个更好的方法以整合现有的扩展指令。

    目前,随着DirectX的不断发展和完善,OpenGL的优势逐渐丧失,至今虽然已有3Dlabs提倡开发的2.0版本面世,在其中加入了很多类似于DirectX中可编程单元的设计,但厂商的用户的认知程度并不高,未来的OpenGL发展前景迷茫。


AGP
AGP(Accelerate Graphical Port),加速图形接口。随着显示芯片的发展,PCI总线日益无法满足其需求。英特尔于1996年7月正式推出了AGP接口,它是一种显示卡专用的局部总线。严格的说,AGP不能称为总线,它与PCI总线不同,因为它是点对点连接,即连接控制芯片和AGP显示卡,但在习惯上我们依然称其为AGP总线。AGP接口是基于PCI 2.1 版规范并进行扩充修改而成,工作频率为66MHz。

  AGP总线直接与主板的北桥芯片相连,且通过该接口让显示芯片与系统主内存直接相连,避免了窄带宽的PCI总线形成的系统瓶颈,增加3D图形数据传输速度,同时在显存不足的情况下还可以调用系统主内存。所以它拥有很高的传输速率,这是PCI等总线无法与其相比拟的。

  由于采用了数据读写的流水线操作减少了内存等待时间,数据传输速度有了很大提高;具有133MHz及更高的数据传输频率;地址信号与数据信号分离可提高随机内存访问的速度;采用并行操作允许在CPU访问系统RAM的同时AGP显示卡访问AGP内存;显示带宽也不与其它设备共享,从而进一步提高了系统性能。

  AGP标准在使用32位总线时,有66MHz和133MHz两种工作频率,最高数据传输率为266Mbps和533Mbps,而PCI总线理论上的最大传输率仅为133Mbps。目前最高规格的AGP 8X模式下,数据传输速度达到了2.1GB/s。

  AGP接口的发展经历了AGP1.0(AGP1X、AGP2X)、AGP2.0(AGP Pro、AGP4X)、AGP3.0(AGP8X)等阶段,其传输速度也从最早的AGP1X的266MB/S的带宽发展到了AGP8X的2.1GB/S。

AGP 1.0(AGP1X、AGP2X)
  1996年7月AGP 1.0 图形标准问世,分为1X和2X两种模式,数据传输带宽分别达到了266MB/s和533MB/s。这种图形接口规范是在66MHz PCI2.1规范基础上经过扩充和加强而形成的,其工作频率为66MHz,工作电压为3.3v,在一段时间内基本满足了显示设备与系统交换数据的需要。这种规范中的AGP带宽很小,现在已经被淘汰了,只有在前几年的老主板上还见得到。

AGP2.0(AGP4X)
  显示芯片的飞速发展,图形卡单位时间内所能处理的数据呈几何级数成倍增长,AGP 1.0 图形标准越来越难以满足技术的进步了,由此AGP 2.0便应运而生了。1998年5月份,AGP 2.0 规范正式发布,工作频率依然是66MHz,但工作电压降低到了1.5v,并且增加了4x模式,这样它的数据传输带宽达到了1066MB/sec,数据传输能力大大地增强了。

AGP Pro
  AGP Pro接口与AGP 2.0同时推出,这是一种为了满足显示设备功耗日益加大的现实而研发的图形接口标准,应用该技术的图形接口主要的特点是比AGP 4x略长一些,其加长部分可容纳更多的电源引脚,使得这种接口可以驱动功耗更大(25-110w)或者处理能力更强大的AGP显卡。这种标准其实是专为高端图形工作站而设计的,完全兼容AGP 4x规范,使得AGP 4x的显卡也可以插在这种插槽中正常使用。AGP Pro在原有AGP插槽的两侧进行延伸,提供额外的电能。它是用来增强,而不是取代现有AGP插槽的功能。根据所能提供能量的不同,可以把AGP Pro细分为AGP Pro110和AGP Pro50。在某些高档台式机主板上也能见到AGP Pro插槽,例如华硕的许多主板。

AGP 3.0(AGP8X)
  2000年8月,Intel推出AGP3.0规范,工作电压降到0.8V,并增加了8x模式,这样它的数据传输带宽达到了2133MB/sec,数据传输能力相对于AGP 4X成倍增长,能较好的满足当前显示设备的带宽需求。

AGP接口的模式传输方式
  不同AGP接口的模式传输方式不同。1X模式的AGP,工作频率达到了PCI总线的两倍—66MHz,传输带宽理论上可达到266MB/s。AGP 2X工作频率同样为66MHz,但是它使用了正负沿(一个时钟周期的上升沿和下降沿)触发的工作方式,在这种触发方式中在一个时钟周期的上升沿和下降沿各传送一次数据,从而使得一个工作周期先后被触发两次,使传输带宽达到了加倍的目的,而这种触发信号的工作频率为133MHz,这样AGP 2X的传输带宽就达到了266MB/s×2(触发次数)=533MB/s的高度。AGP 4X仍使用了这种信号触发方式,只是利用两个触发信号在每个时钟周期的下降沿分别引起两次触发,从而达到了在一个时钟周期中触发4次的目的,这样在理论上它就可以达到266MB/s×2(单信号触发次数)×2(信号个数)=1066MB/s的带宽了。在AGP 8X规范中,这种触发模式仍然使用,只是触发信号的工作频率变成266MHz,两个信号触发点也变成了每个时钟周期的上升沿,单信号触发次数为4次,这样它在一个时钟周期所能传输的数据就从AGP4X的4倍变成了8倍,理论传输带宽将可达到266MB/s×4(单信号触发次数)×2(信号个数)=2133MB/s的高度了。
  目前常用的AGP接口为AGP4X、AGP PRO、AGP通用及AGP8X接口。需要说明的是由于AGP3.0显卡的额定电压为0.8—1.5V,因此不能把AGP8X的显卡插接到AGP1.0规格的插槽中。这就是说AGP8X规格与旧有的AGP1X/2X模式不兼容。而对于AGP4X系统,AGP8X显卡仍旧在其上工作,但仅会以AGP4X模式工作,无法发挥AGP8X的优势。


RAMDAC
RAMDAC是Random Access Memory Digital/Analog Convertor的缩写,即随机存取内存数字~模拟转换器。RAMDAC作用是将显存中的数字信号转换为显示器能够显示出来的模拟信号,其转换速率以MHz表示。

  计算机中处理数据的过程其实就是将事物数字化的过程,所有的事物将被处理成 0和 1两个数,而后不断进行累加计算。图形加速卡也是靠这些0和1对每一个象素进行颜色、深度、亮度等各种处理。显卡生成的信号都是以数字来表示的,但是所有的CRT显示器都是以模拟方式进行工作的,数字信号无法被识别,这就必须有相应的设备将数字信号转换为模拟信号。而RAMDAC就是显卡中将数字信号转换为模拟信号的设备。

  RAMDAC的转换速率以MHz表示,它决定了刷新频率的高低(与显示器的“带宽”意义近似)。其工作速度越高,频带越宽,高分辨率时的画面质量越好.该数值决定了在足够的显存下,显卡最高支持的分辨率和刷新率。如果要在1024×768的分辨率下达到85Hz的分辨率,RAMDAC的速率至少是1024×768×85×1.344÷1.06≈90MHz。

  早期显卡的RAMDAC一般为300MHz,很快发展到350MHz,目前主流的显卡RAMDAC都能达到400MHz,已足以满足和超过目前大多数显示器所能提供的分辨率和刷新率。


API
API是Application Programming Interface的缩写,是应用程序接口的意思,而3D API则是指显卡与应用程序直接的接口。3D API能让编程人员所设计的3D软件只要调用其API内的程序,从而让API自动和硬件的驱动程序沟通,启动3D芯片内强大的3D图形处理功能,从而大幅度地提高了3D程序的设计效率。

    如果没有3D API在开发程序时,程序员必须要了解全部的显卡特性,才能编写出与显卡完全匹配的程序,发挥出全部的显卡性能。而有了3D API这个显卡与软件直接的接口,程序员只需要编写符合接口的程序代码,就可以充分发挥显卡的不必再去了解硬件的具体性能和参数,这样就大大简化了程序开发的效率。

    同样,显示芯片厂商根据标准来设计自己的硬件产品,以达到在API调用硬件资源时最优化,获得更好的性能。有了3D API,便可实现不同厂家的硬件、软件最大范围兼容。比如在最能体现3D API的游戏方面,游戏设计人员设计时,不必去考虑具体某款显卡的特性,而只是按照3D API的接口标准来开发游戏,当游戏运行时则直接通过3D API来调用显卡的硬件资源。

    目前个人电脑中主要应用的3D API有DirectX和OpenGL。DirectX目前已经成为游戏的主流,市售的绝大部分主流游戏均基于DirectX开发,例如《帝国时代3》、《孤岛惊魂》、《使命召唤2》、《Half Life2》等流行的优秀游戏。而OpenGL目前则主要应用于专业的图形工作站,在游戏方面历史上也曾经和DirectX分庭抗礼,产生了一大批的优秀游戏,例如《Quake3》、《Half Life》、《荣誉勋章》的前几部、《反恐精英》等,目前在DirectX的步步进逼之下,采用OpenGL的游戏已经越来越少,但也不乏经典大作,例如基于OpenGL的《DOOM3》以及采用DOOM3引擎的《Quake4》等等,无论过去还是现在,OpenGL在游戏方面的主要代表都是著名的id Software。


最大分辨率
显卡的最大分辨率是指显卡在显示器上所能描绘的像素点的数量。大家知道显示器上显示的画面是一个个的像素点构成的,而这些像素点的所有数据都是由显卡提供的,最大分辨率就是表示显卡输出给显示器,并能在显示器上描绘像素点的数量。分辨率越大,所能显示的图像的像素点就越多,并且能显示更多的细节,当然也就越清晰。

    最大分辨率在一定程度上跟显存有着直接关系,因为这些像素点的数据最初都要存储于显存内,因此显存容量会影响到最大分辨率。在早期显卡的显存容量只具有512KB、1MB、2MB等极小容量时,显存容量确实是最大分辨率的一个瓶颈;但目前主流显卡的显存容量,就连64MB也已经被淘汰,主流的娱乐级显卡已经是128MB、256MB或512MB,某些专业显卡甚至已经具有1GB的显存,在这样的情况下,显存容量早已经不再是影响最大分辨率的因素,之所以需要这么大容量的显存,不过就是因为现在的大型3D游戏和专业渲染需要临时存储更多的数据罢了。

    现在决定最大分辨率的其实是显卡的RAMDAC频率,目前所有主流显卡的RAMDAC都达到了400MHz,至少都能达到2048x1536的最大分辨率,而最新一代显卡的最大分辨率更是高达2560x1600了。

    另外,显卡能输出的最大显示分辨率并不代表自己的电脑就能达到这么高的分辨率,还必须有足够强大的显示器配套才可以实现,也就是说,还需要显示器的最大分辨率与显卡的最大分辨率相匹配才能实现。例如要实现2048x1536的分辨率,除了显卡要支持之外,还需要显示器也要支持。而CRT显示器的最大分辨率主要是由其带宽所决定,而液晶显示器的最大分辨率则主要由其面板所决定。目前主流的显示器,17英寸的CRT其最大分辨率一般只有1600x1200,17英寸和19英寸的液晶则只有1280x1024,所以目前在普通电脑系统上最大分辨率的瓶颈不是显卡而是显示器。要实现2048x1536甚至2560x1600的最大分辨率,只有借助于专业级的大屏幕高档显示器才能实现,例如DELL的30英寸液晶显示器就能实现2560x1600的超高分辨率。


显存容量
显存容量是显卡上本地显存的容量数,这是选择显卡的关键参数之一。显存容量的大小决定着显存临时存储数据的能力,在一定程度上也会影响显卡的性能。显存容量也是随着显卡的发展而逐步增大的,并且有越来越增大的趋势。显存容量从早期的512KB、1MB、2MB等极小容量,发展到8MB、12MB、16MB、32MB、64MB,一直到目前主流的128MB、256MB和高档显卡的512MB,某些专业显卡甚至已经具有1GB的显存了。

    在显卡最大分辨率方面,最大分辨率在一定程度上跟显存有着直接关系,因为这些像素点的数据最初都要存储于显存内,因此显存容量会影响到最大分辨率。在早期显卡的显存容量只具有512KB、1MB、2MB等极小容量时,显存容量确实是最大分辨率的一个瓶颈;但目前主流显卡的显存容量,就连64MB也已经被淘汰,主流的娱乐级显卡已经是128MB、256MB或512MB,某些专业显卡甚至已经具有1GB的显存,在这样的情况下,显存容量早已经不再是影响最大分辨率的因素。

    在显卡性能方面,随着显示芯片的处理能力越来越强大,特别是现在的大型3D游戏和专业渲染需要临时存储的数据也越来越多,所需要的显存容量也是越来越大,显存容量在一定程度上也会影响到显卡的性能。例如在显示核心足够强劲而显存容量比较小的情况下,却有大量的大纹理贴图数据需要存放,如果显存的容量不足以存放这些数据,那么显示核心在某些时间就只有闲置以等待这些数据处理完毕,这就影响了显示核心性能的发挥从而也就影响到了显卡的性能。

    值得注意的是,显存容量越大并不一定意味着显卡的性能就越高,因为决定显卡性能的三要素首先是其所采用的显示芯片,其次是显存带宽(这取决于显存位宽和显存频率),最后才是显存容量。一款显卡究竟应该配备多大的显存容量才合适是由其所采用的显示芯片所决定的,也就是说显存容量应该与显示核心的性能相匹配才合理,显示芯片性能越高由于其处理能力越高所配备的显存容量相应也应该越大,而低性能的显示芯片配备大容量显存对其性能是没有任何帮助的。例如市售的某些配备了512MB大容量显存的Radeon 9550显卡在显卡性能方面与128MB显存的Radeon 9550显卡在核心频率和显存频率等参数都相同时是完全一样的,因为Radeon 9550显示核心相对低下的处理能力决定了其配备大容量显存其实是没有任何意义的,而大容量的显存反而还带来了购买成本提高的问题。


显存带宽
显存带宽是指显示芯片与显存之间的数据传输速率,它以字节/秒为单位。显存带宽是决定显卡性能和速度最重要的因素之一。要得到精细(高分辨率)、色彩逼真(32位真彩)、流畅(高刷新速度)的3D画面,就必须要求显卡具有大显存带宽。目前显示芯片的性能已达到很高的程度,其处理能力是很强的,只有大显存带宽才能保障其足够的数据输入和输出。随着多媒体、3D游戏对硬件的要求越来越高,在高分辨率、32位真彩和高刷新率的3D画面面前,相对于GPU,较低的显存带宽已经成为制约显卡性能的瓶颈。显存带宽是目前决定显卡图形性能和速度的重要因素之一。

  显存带宽的计算公式为:显存带宽=工作频率×显存位宽/8。目前大多中低端的显卡都能提供6.4GB/s、8.0GB/s的显存带宽,而对于高端的显卡产品则提供超过20GB/s的显存带宽。在条件允许的情况下,尽可能购买显存带宽大的显卡,这是一个选择的关键。


显存
显存是显卡上的关键核心部件之一,它的优劣和容量大小会直接关系到显卡的最终性能表现。可以说显示芯片决定了显卡所能提供的功能和其基本性能,而显卡性能的发挥则很大程度上取决于显存。无论显示芯片的性能如何出众,最终其性能都要通过配套的显存来发挥。

  显存,也被叫做帧缓存,它的作用是用来存储显卡芯片处理过或者即将提取的渲染数据。如同计算机的内存一样,显存是用来存储要处理的图形信息的部件。我们在显示屏上看到的画面是由一个个的像素点构成的,而每个像素点都以4至32甚至64位的数据来控制它的亮度和色彩,这些数据必须通过显存来保存,再交由显示芯片和CPU调配,最后把运算结果转化为图形输出到显示器上。

  显卡的工作原理是:在显卡开始工作(图形渲染建模)前,通常是把所需要的材质和纹理数据传送到显存里面,开始工作时候(进行建模渲染),这些数据通过AGP总线进行传输,显示芯片将通过AGP总线提取存储在显存里面的数据,除了建模渲染数据外还有大量的顶点数据和工作指令流需要进行交换,这些数据通过RAMDAC转换为模拟信号输出到显示端,最终就是我们看见的图像。

  显示芯片性能的日益提高,其数据处理能力越来越强,使得显存数据传输量和传输率也要求越来越高,显卡对显存的要求也更高。对于现在的显卡来说,显存是承担大量的三维运算所需的多边形顶点数据以及作为海量三维函数的运算的主要载体,这时显存的交换量的大小,速度的快慢对于显卡核心的效能发挥都是至关重要的,而如何有效地提高显存的效能也就成了提高整个显示卡效能的关键。

  作为显示卡的重要组成部分,显存一直随着显示芯片的发展而逐步改变着。从早期的EDORAM、MDRAM、SDRAM、SGRAM、VRAM、WRAM等到今天广泛采用的DDR SDRAM显存经历了很多代的进步。

  目前市场中所采用的显存类型主要有SDRAM,DDR SDRAM,DDR SGRAM三种。SDRAM颗粒目前主要应用在低端显卡上,频率一般不超过200MHz,在价格和性能上它比DDR都没有什么优势,因此逐渐被DDR取代。DDR SDRAM是市场中的主流(包括DDR2和DDR3),一方面是工艺的成熟,批量的生产导致成本下跌,使得它的价格便宜;另一方面它能提供较高的工作频率,带来优异的数据处理性能。至于DDR SGRAM,它是显卡厂商特别针对绘图者需求,为了加强图形的存取处理以及绘图控制效率,从同步动态随机存取内存(SDRAM)所改良而得的产品。SGRAM允许以方块 (Blocks) 为单位个别修改或者存取内存中的资料,它能够与中央处理器(CPU)同步工作,可以减少内存读取次数,增加绘图控制器的效率,尽管它稳定性不错,而且性能表现也很好,但是它的超频性能很差劲,目前也极少使用。

FPM显存
EDO显存
SGRAM显存
SDRAM显存
DDR显存
DDR2显存
DDR3显存


显存位宽
显存位宽是显存在一个时钟周期内所能传送数据的位数,位数越大则瞬间所能传输的数据量越大,这是显存的重要参数之一。目前市场上的显存位宽有64位、128位和256位三种,人们习惯上叫的64位显卡、128位显卡和256位显卡就是指其相应的显存位宽。显存位宽越高,性能越好价格也就越高,因此256位宽的显存更多应用于高端显卡,而主流显卡基本都采用128位显存。

  大家知道显存带宽=显存频率X显存位宽/8,那么在显存频率相当的情况下,显存位宽将决定显存带宽的大小。比如说同样显存频率为500MHz的128位和256位显存,那么它俩的显存带宽将分别为:128位=500MHz*128∕8=8GB/s,而256位=500MHz*256∕8=16GB/s,是128位的2倍,可见显存位宽在显存数据中的重要性。

  显卡的显存是由一块块的显存芯片构成的,显存总位宽同样也是由显存颗粒的位宽组成,。显存位宽=显存颗粒位宽×显存颗粒数。显存颗粒上都带有相关厂家的内存编号,可以去网上查找其编号,就能了解其位宽,再乘以显存颗粒数,就能得到显卡的位宽。这是最为准确的方法,但施行起来较为麻烦。


显存频率
显存频率是指默认情况下,该显存在显卡上工作时的频率,以MHz(兆赫兹)为单位。显存频率一定程度上反应着该显存的速度。显存频率随着显存的类型、性能的不同而不同,SDRAM显存一般都工作在较低的频率上,一般就是133MHz和166MHz,此种频率早已无法满足现在显卡的需求。DDR SDRAM显存则能提供较高的显存频率,主要在中低端显卡上使用,DDR2显存由于成本高并且性能一般,因此使用量不大。DDR3显存是目前高端显卡采用最为广泛的显存类型。不同显存能提供的显存频率也差异很大,主要有400MHz、500MHz、600MHz、650MHz等,高端产品中还有800MHz、1200MHz、1600MHz,甚至更高。

  显存频率与显存时钟周期是相关的,二者成倒数关系,也就是显存频率=1/显存时钟周期。如果是SDRAM显存,其时钟周期为6ns,那么它的显存频率就为1/6ns=166 MHz。而对于DDR SDRAM或者DDR2、DDR3,其时钟周期为6ns,那么它的显存频率就为1/6ns=166 MHz,但要了解的是这是DDR SDRAM的实际频率,而不是我们平时所说的DDR显存频率。因为DDR在时钟上升期和下降期都进行数据传输,其一个周期传输两次数据,相当于SDRAM频率的二倍。习惯上称呼的DDR频率是其等效频率,是在其实际工作频率上乘以2,就得到了等效频率。因此6ns的DDR显存,其显存频率为1/6ns*2=333 MHz。具体情况可以看下边关于各种显存的介绍。

  但要明白的是显卡制造时,厂商设定了显存实际工作频率,而实际工作频率不一定等于显存最大频率。此类情况现在较为常见,如显存最大能工作在650 MHz,而制造时显卡工作频率被设定为550 MHz,此时显存就存在一定的超频空间。这也就是目前厂商惯用的方法,显卡以超频为卖点。此外,用于显卡的显存,虽然和主板用的内存同样叫DDR、DDR2甚至DDR3,但是由于规范参数差异较大,不能通用,因此也可以称显存为GDDR、GDDR2、GDDR3。

SDRAM显存
DDR显存
DDR2显存
DDR3显存


显存时钟周期
显存时钟周期就是显存时钟脉冲的重复周期,它是作为衡量显存速度的重要指标。显存速度越快,单位时间交换的数据量也就越大,在同等情况下显卡性能将会得到明显提升。显存的时钟周期一般以ns(纳秒)为单位,工作频率以MHz为单位。显存时钟周期跟工作频率一一对应,它们之间的关系为:工作频率=1÷时钟周期×1000。那么显存频率为166MHz,那么它的时钟周期为1÷166×1000=6ns。

    对于DDR SDRAM或者DDR2、DDR3显存来说,描述其工作频率时用的是等效输出频率。因为能在时钟周期的上升沿和下降沿都能传送数据,所以在工作频率和数据位宽度相同的情况下,显存带宽是SDRAM的两倍。换句话说,在显存时钟周期相同的情况下,DDR SDRAM显存的等效输出频率是SDRAM显存的两倍。例如,5ns的SDRAM显存的工作频率为200MHz,而5ns的DDR SDRAM或者DDR2、DDR3显存的等效工作频率就是400MHz。常见显存时钟周期有5ns、4ns、3.8ns、3.6ns、3.3ns、2.8ns、2.0ns、1.6ns、1.1ns,甚至更低。


核心频率
显卡的核心频率是指显示核心的工作频率,其工作频率在一定程度上可以反映出显示核心的性能,但显卡的性能是由核心频率、显存、像素管线、像素填充率等等多方面的情况所决定的,因此在显示核心不同的情况下,核心频率高并不代表此显卡性能强劲。比如9600PRO的核心频率达到了400MHz,要比9800PRO的380MHz高,但在性能上9800PRO绝对要强于9600PRO。在同样级别的芯片中,核心频率高的则性能要强一些,提高核心频率就是显卡超频的方法之一。显示芯片主流的只有ATI和NVIDIA两家,两家都提供显示核心给第三方的厂商,在同样的显示核心下,部分厂商会适当提高其产品的显示核心频率,使其工作在高于显示核心固定的频率上以达到更高的性能。




像素填充率
像素填充率的最大值为3D时钟乘以渲染途径的数量。如NVIDIA的GeForce 2 GTS芯片,核心频率为200 MHz,4条渲染管道,每条渲染管道包含2个纹理单元。那么它的填充率就为4x2像素x2亿/秒=16亿像素/秒。这里的像素组成了我们在显示屏上看到的画面,在800x600分辨率下一共就有800x600=480,000个像素,以此类推1024x768分辨率就有1024x768=786,432个像素。我们在玩游戏和用一些图形软件常设置分辨率,当分辨率越高时显示芯片就会渲染更多的像素,因此填充率的大小对衡量一块显卡的性能有重要的意义。刚才我们计算了GTS的填充率为16亿像素/秒,下面我们看看MX200。它的标准核心频率为175,渲染管道只有2条,那么它的填充率为2x2 像素x1.75亿/秒=7亿像素/秒,这是它比GTS的性能相差一半的一个重要原因。


渲染管线
渲染管线也称为渲染流水线,是显示芯片内部处理图形信号相互独立的的并行处理单元。在某种程度上可以把渲染管线比喻为工厂里面常见的各种生产流水线,工厂里的生产流水线是为了提高产品的生产能力和效率,而渲染管线则是提高显卡的工作能力和效率。

    渲染管线的数量一般是以 像素渲染流水线的数量×每管线的纹理单元数量 来表示。例如,GeForce 6800Ultra的渲染管线是16×1,就表示其具有16条像素渲染流水线,每管线具有1个纹理单元;GeForce4 MX440的渲染管线是2×2,就表示其具有2条像素渲染流水线,每管线具有2个纹理单元等等,其余表示方式以此类推。

    渲染管线的数量是决定显示芯片性能和档次的最重要的参数之一,在相同的显卡核心频率下,更多的渲染管线也就意味着更大的像素填充率和纹理填充率,从显卡的渲染管线数量上可以大致判断出显卡的性能高低档次。但显卡性能并不仅仅只是取决于渲染管线的数量,同时还取决于显示核心架构、渲染管线的的执行效率、顶点着色单元的数量以及显卡的核心频率和显存频率等等方面。一般来说在相同的显示核心架构下,渲染管线越多也就意味着性能越高,例如16×1架构的GeForce 6800GT其性能要强于12×1架构的GeForce 6800,就象工厂里的采用相同技术的2条生产流水线的生产能力和效率要强于1条生产流水线那样;而在不同的显示核心架构下,渲染管线的数量多就并不意味着性能更好,例如4×2架构的GeForce2 GTS其性能就不如2×2架构的GeForce4 MX440,就象工厂里的采用了先进技术的1条流水线的生产能力和效率反而还要强于只采用了老技术的2条生产流水线那样。

该用户从未签到

 楼主| 发表于 2007-1-13 14:55:14 | 显示全部楼层
★★★★★CPU相关知识★★★★★

二级缓存
CPU缓存(Cache Memory)位于CPU与内存之间的临时存储器,它的容量比内存小但交换速度快。在缓存中的数据是内存中的一小部分,但这一小部分是短时间内CPU即将访问的,当CPU调用大量数据时,就可避开内存直接从缓存中调用,从而加快读取速度。由此可见,在CPU中加入缓存是一种高效的解决方案,这样整个内存储器(缓存+内存)就变成了既有缓存的高速度,又有内存的大容量的存储系统了。缓存对CPU的性能影响很大,主要是因为CPU的数据交换顺序和CPU与缓存间的带宽引起的。 

  缓存的工作原理是当CPU要读取一个数据时,首先从缓存中查找,如果找到就立即读取并送给CPU处理;如果没有找到,就用相对慢的速度从内存中读取并送给CPU处理,同时把这个数据所在的数据块调入缓存中,可以使得以后对整块数据的读取都从缓存中进行,不必再调用内存。

  正是这样的读取机制使CPU读取缓存的命中率非常高(大多数CPU可达90%左右),也就是说CPU下一次要读取的数据90%都在缓存中,只有大约10%需要从内存读取。这大大节省了CPU直接读取内存的时间,也使CPU读取数据时基本无需等待。总的来说,CPU读取数据的顺序是先缓存后内存。

  最早先的CPU缓存是个整体的,而且容量很低,英特尔公司从Pentium时代开始把缓存进行了分类。当时集成在CPU内核中的缓存已不足以满足CPU的需求,而制造工艺上的限制又不能大幅度提高缓存的容量。因此出现了集成在与CPU同一块电路板上或主板上的缓存,此时就把 CPU内核集成的缓存称为一级缓存,而外部的称为二级缓存。一级缓存中还分数据缓存(Data Cache,D-Cache)和指令缓存(Instruction Cache,I-Cache)。二者分别用来存放数据和执行这些数据的指令,而且两者可以同时被CPU访问,减少了争用Cache所造成的冲突,提高了处理器效能。英特尔公司在推出Pentium 4处理器时,用新增的一种一级追踪缓存替代指令缓存,容量为12KμOps,表示能存储12K条微指令。

  随着CPU制造工艺的发展,二级缓存也能轻易的集成在CPU内核中,容量也在逐年提升。现在再用集成在CPU内部与否来定义一、二级缓存,已不确切。而且随着二级缓存被集成入CPU内核中,以往二级缓存与CPU大差距分频的情况也被改变,此时其以相同于主频的速度工作,可以为CPU提供更高的传输速度。

  二级缓存是CPU性能表现的关键之一,在CPU核心不变化的情况下,增加二级缓存容量能使性能大幅度提高。而同一核心的CPU高低端之分往往也是在二级缓存上有差异,由此可见二级缓存对于CPU的重要性。

  CPU在缓存中找到有用的数据被称为命中,当缓存中没有CPU所需的数据时(这时称为未命中),CPU才访问内存。从理论上讲,在一颗拥有二级缓存的CPU中,读取一级缓存的命中率为80%。也就是说CPU一级缓存中找到的有用数据占数据总量的80%,剩下的20%从二级缓存中读取。由于不能准确预测将要执行的数据,读取二级缓存的命中率也在80%左右(从二级缓存读到有用的数据占总数据的16%)。那么还有的数据就不得不从内存调用,但这已经是一个相当小的比例了。目前的较高端的CPU中,还会带有三级缓存,它是为读取二级缓存后未命中的数据设计的—种缓存,在拥有三级缓存的CPU中,只有约5%的数据需要从内存中调用,这进一步提高了CPU的效率。

  为了保证CPU访问时有较高的命中率,缓存中的内容应该按一定的算法替换。一种较常用的算法是“最近最少使用算法”(LRU算法),它是将最近一段时间内最少被访问过的行淘汰出局。因此需要为每行设置一个计数器,LRU算法是把命中行的计数器清零,其他各行计数器加1。当需要替换时淘汰行计数器计数值最大的数据行出局。这是一种高效、科学的算法,其计数器清零过程可以把一些频繁调用后再不需要的数据淘汰出缓存,提高缓存的利用率。

  CPU产品中,一级缓存的容量基本在4KB到64KB之间,二级缓存的容量则分为128KB、256KB、512KB、1MB、2MB等。一级缓存容量各产品之间相差不大,而二级缓存容量则是提高CPU性能的关键。二级缓存容量的提升是由CPU制造工艺所决定的,容量增大必然导致CPU内部晶体管数的增加,要在有限的CPU面积上集成更大的缓存,对制造工艺的要求也就越高。

    双核心CPU的二级缓存比较特殊,和以前的单核心CPU相比,最重要的就是两个内核的缓存所保存的数据要保持一致,否则就会出现错误,为了解决这个问题不同的CPU使用了不同的办法:

Intel双核心处理器的二级缓存
    目前Intel的双核心CPU主要有Pentium D、Pentium EE、Core Duo三种,其中Pentium D、Pentium EE的二级缓存方式完全相同。Pentium D和Pentium EE的二级缓存都是CPU内部两个内核具有互相独立的二级缓存,其中,8xx系列的Smithfield核心CPU为每核心1MB,而9xx系列的Presler核心CPU为每核心2MB。这种CPU内部的两个内核之间的缓存数据同步是依靠位于主板北桥芯片上的仲裁单元通过前端总线在两个核心之间传输来实现的,所以其数据延迟问题比较严重,性能并不尽如人意。
    Core Duo使用的核心为Yonah,它的二级缓存则是两个核心共享2MB的二级缓存,共享式的二级缓存配合Intel的“Smart cache”共享缓存技术,实现了真正意义上的缓存数据同步,大幅度降低了数据延迟,减少了对前端总线的占用,性能表现不错,是目前双核心处理器上最先进的二级缓存架构。今后Intel的双核心处理器的二级缓存都会采用这种两个内核共享二级缓存的“Smart cache”共享缓存技术。

AMD双核心处理器的二级缓存
    Athlon 64 X2 CPU的核心主要有Manchester和Toledo两种,他们的二级缓存都是CPU内部两个内核具有互相独立的二级缓存,其中,Manchester核心为每核心512KB,而Toledo核心为每核心1MB。处理器内部的两个内核之间的缓存数据同步是依靠CPU内置的System Request Interface(系统请求接口,SRI)控制,传输在CPU内部即可实现。这样一来,不但CPU资源占用很小,而且不必占用内存总线资源,数据延迟也比Intel的Smithfield核心和Presler核心大为减少,协作效率明显胜过这两种核心。不过,由于这种方式仍然是两个内核的缓存相互独立,从架构上来看也明显不如以Yonah核心为代表的Intel的共享缓存技术Smart Cache。


前端总线频率
总线是将信息以一个或多个源部件传送到一个或多个目的部件的一组传输线。通俗的说,就是多个部件间的公共连线,用于在各个部件之间传输信息。人们常常以MHz表示的速度来描述总线频率。总线的种类很多,前端总线的英文名字是Front Side Bus,通常用FSB表示,是将CPU连接到北桥芯片的总线。选购主板和CPU时,要注意两者搭配问题,一般来说,如果CPU不超频,那么前端总线是由CPU决定的,如果主板不支持CPU所需要的前端总线,系统就无法工作。也就是说,需要主板和CPU都支持某个前端总线,系统才能工作,只不过一个CPU默认的前端总线是唯一的,因此看一个系统的前端总线主要看CPU就可以。

    北桥芯片负责联系内存、显卡等数据吞吐量最大的部件,并和南桥芯片连接。CPU就是通过前端总线(FSB)连接到北桥芯片,进而通过北桥芯片和内存、显卡交换数据。前端总线是CPU和外界交换数据的最主要通道,因此前端总线的数据传输能力对计算机整体性能作用很大,如果没足够快的前端总线,再强的CPU也不能明显提高计算机整体速度。数据传输最大带宽取决于所有同时传输的数据的宽度和传输频率,即数据带宽=(总线频率×数据位宽)÷8。目前PC机上所能达到的前端总线频率有266MHz、333MHz、400MHz、533MHz、800MHz几种,前端总线频率越大,代表着CPU与北桥芯片之间的数据传输能力越大,更能充分发挥出CPU的功能。现在的CPU技术发展很快,运算速度提高很快,而足够大的前端总线可以保障有足够的数据供给给CPU,较低的前端总线将无法供给足够的数据给CPU,这样就限制了CPU性能得发挥,成为系统瓶颈。显然同等条件下,前端总线越快,系统性能越好。

    外频与前端总线频率的区别:前端总线的速度指的是CPU和北桥芯片间总线的速度,更实质性的表示了CPU和外界数据传输的速度。而外频的概念是建立在数字脉冲信号震荡速度基础之上的,也就是说,100MHz外频特指数字脉冲信号在每秒钟震荡一万万次,它更多的影响了PCI及其他总线的频率。之所以前端总线与外频这两个概念容易混淆,主要的原因是在以前的很长一段时间里(主要是在Pentium 4出现之前和刚出现Pentium 4时),前端总线频率与外频是相同的,因此往往直接称前端总线为外频,最终造成这样的误会。随着计算机技术的发展,人们发现前端总线频率需要高于外频,因此采用了QDR(Quad Date Rate)技术,或者其他类似的技术实现这个目的。这些技术的原理类似于AGP的2X或者4X,它们使得前端总线的频率成为外频的2倍、4倍甚至更高,从此之后前端总线和外频的区别才开始被人们重视起来。此外,在前端总线中比较特殊的是AMD64的HyperTransport。


倍频
CPU的倍频,全称是倍频系数。CPU的核心工作频率与外频之间存在着一个比值关系,这个比值就是倍频系数,简称倍频。理论上倍频是从1.5一直到无限的,但需要注意的是,倍频是以0.5为一个间隔单位。外频与倍频相乘就是主频,所以其中任何一项提高都可以使CPU的主频上升。

  原先并没有倍频概念,CPU的主频和系统总线的速度是一样的,但CPU的速度越来越快,倍频技术也就应允而生。它可使系统总线工作在相对较低的频率上,而CPU速度可以通过倍频来无限提升。那么CPU主频的计算方式变为:主频 = 外频 x 倍频。也就是倍频是指CPU和系统总线之间相差的倍数,当外频不变时,提高倍频,CPU主频也就越高。

    一个CPU默认的倍频只有一个,主板必须能支持这个倍频。因此在选购主板和CPU时必须注意这点,如果两者不匹配,系统就无法工作。此外,现在CPU的倍频很多已经被锁定,无法修改。


外频
外频是CPU乃至整个计算机系统的基准频率,单位是MHz(兆赫兹)。在早期的电脑中,内存与主板之间的同步运行的速度等于外频,在这种方式下,可以理解为CPU外频直接与内存相连通,实现两者间的同步运行状态。对于目前的计算机系统来说,两者完全可以不相同,但是外频的意义仍然存在,计算机系统中大多数的频率都是在外频的基础上,乘以一定的倍数来实现,这个倍数可以是大于1的,也可以是小于1的。

    说到处理器外频,就要提到与之密切相关的两个概念:倍频与主频,主频就是CPU的时钟频率;倍频即主频与外频之比的倍数。主频、外频、倍频,其关系式:主频=外频×倍频。

    在486之前,CPU的主频还处于一个较低的阶段,CPU的主频一般都等于外频。而在486出现以后,由于CPU工作频率不断提高,而PC机的一些其他设备(如插卡、硬盘等)却受到工艺的限制,不能承受更高的频率,因此限制了CPU频率的进一步提高。因此出现了倍频技术,该技术能够使CPU内部工作频率变为外部频率的倍数,从而通过提升倍频而达到提升主频的目的。倍频技术就是使外部设备可以工作在一个较低外频上,而CPU主频是外频的倍数。

    在Pentium时代,CPU的外频一般是60/66MHz,从Pentium Ⅱ 350开始,CPU外频提高到100MHz,目前CPU外频已经达到了200MHz。由于正常情况下外频和内存总线频率相同,所以当CPU外频提高后,与内存之间的交换速度也相应得到了提高,对提高电脑整体运行速度影响较大。

    外频与前端总线(FSB)频率很容易被混为一谈。前端总线的速度指的是CPU和北桥芯片间总线的速度,更实质性的表示了CPU和外界数据传输的速度。而外频的概念是建立在数字脉冲信号震荡速度基础之上的,也就是说,100MHz外频特指数字脉冲信号在每秒钟震荡一万万次,它更多的影响了PCI及其他总线的频率。之所以前端总线与外频这两个概念容易混淆,主要的原因是在以前的很长一段时间里(主要是在Pentium 4出现之前和刚出现Pentium 4时),前端总线频率与外频是相同的,因此往往直接称前端总线为外频,最终造成这样的误会。随着计算机技术的发展,人们发现前端总线频率需要高于外频,因此采用了QDR(Quad Date Rate)技术,或者其他类似的技术实现这个目的。这些技术的原理类似于AGP的2X或者4X,它们使得前端总线的频率成为外频的2倍、4倍甚至更高,从此之后前端总线和外频的区别才开始被人们重视起来。

    一个CPU默认的外频只有一个,主板必须能支持这个外频。因此在选购主板和CPU时必须注意这点,如果两者不匹配,系统就无法工作。此外,现在CPU的倍频很多已经被锁定,所以超频时经常需要超外频。外频改变后系统很多其他频率也会改变,除了CPU主频外,前端总线频率、PCI等各种接口频率,包括硬盘接口的频率都会改变,都可能造成系统无法正常运行。当然有些主板可以提供锁定各种接口频率的功能,对成功超频有很大帮助。超频有风险,甚至会损坏计算机硬件。


主频
 在电子技术中,脉冲信号是一个按一定电压幅度,一定时间间隔连续发出的脉冲信号。脉冲信号之间的时间间隔称为周期;而将在单位时间(如1秒)内所产生的脉冲个数称为频率。频率是描述周期性循环信号(包括脉冲信号)在单位时间内所出现的脉冲数量多少的计量名称;频率的标准计量单位是Hz(赫)。电脑中的系统时钟就是一个典型的频率相当精确和稳定的脉冲信号发生器。频率在数学表达式中用“f”表示,其相应的单位有:Hz(赫)、kHz(千赫)、MHz(兆赫)、GHz(吉赫)。其中1GHz=1000MHz,1MHz=1000kHz,1kHz=1000Hz。计算脉冲信号周期的时间单位及相应的换算关系是:s(秒)、ms(毫秒)、μs(微秒)、ns(纳秒),其中:1s=1000ms,1 ms=1000μs,1μs=1000ns。

  CPU的主频,即CPU内核工作的时钟频率(CPU Clock Speed)。通常所说的某某CPU是多少兆赫的,而这个多少兆赫就是“CPU的主频”。很多人认为CPU的主频就是其运行速度,其实不然。CPU的主频表示在CPU内数字脉冲信号震荡的速度,与CPU实际的运算能力并没有直接关系。主频和实际的运算速度存在一定的关系,但目前还没有一个确定的公式能够定量两者的数值关系,因为CPU的运算速度还要看CPU的流水线的各方面的性能指标(缓存、指令集,CPU的位数等等)。由于主频并不直接代表运算速度,所以在一定情况下,很可能会出现主频较高的CPU实际运算速度较低的现象。比如AMD公司的AthlonXP系列CPU大多都能以较低的主频,达到英特尔公司的Pentium 4系列CPU较高主频的CPU性能,所以AthlonXP系列CPU才以PR值的方式来命名。因此主频仅是CPU性能表现的一个方面,而不代表CPU的整体性能。

  CPU的主频不代表CPU的速度,但提高主频对于提高CPU运算速度却是至关重要的。举个例子来说,假设某个CPU在一个时钟周期内执行一条运算指令,那么当CPU运行在100MHz主频时,将比它运行在50MHz主频时速度快一倍。因为100MHz的时钟周期比50MHz的时钟周期占用时间减少了一半,也就是工作在100MHz主频的CPU执行一条运算指令所需时间仅为10ns比工作在50MHz主频时的20ns缩短了一半,自然运算速度也就快了一倍。只不过电脑的整体运行速度不仅取决于CPU运算速度,还与其它各分系统的运行情况有关,只有在提高主频的同时,各分系统运行速度和各分系统之间的数据传输速度都能得到提高后,电脑整体的运行速度才能真正得到提高。

  提高CPU工作主频主要受到生产工艺的限制。由于CPU是在半导体硅片上制造的,在硅片上的元件之间需要导线进行联接,由于在高频状态下要求导线越细越短越好,这样才能减小导线分布电容等杂散干扰以保证CPU运算正确。因此制造工艺的限制,是CPU主频发展的最大障碍之一。


多媒体指令集
CPU依靠指令来计算和控制系统,每款CPU在设计时就规定了一系列与其硬件电路相配合的指令系统。指令的强弱也是CPU的重要指标,指令集是提高微处理器效率的最有效工具之一。从现阶段的主流体系结构讲,指令集可分为复杂指令集和精简指令集两部分,而从具体运用看,如Intel的MMX(Multi Media Extended)、SSE、 SSE2(Streaming-Single instruction multiple data-Extensions 2)和AMD的3DNow!等都是CPU的扩展指令集,分别增强了CPU的多媒体、图形图象和Internet等的处理能力。我们通常会把CPU的扩展指令集称为"CPU的指令集"。



精简指令集的运用

  在最初发明计算机的数十年里,随着计算机功能日趋增大,性能日趋变强,内部元器件也越来越多,指令集日趋复杂,过于冗杂的指令严重的影响了计算机的工作效率。后来经过研究发现,在计算机中,80%程序只用到了20%的指令集,基于这一发现,RISC精简指令集被提了出来,这是计算机系统架构的一次深刻革命。RISC体系结构的基本思路是:抓住CISC指令系统指令种类太多、指令格式不规范、寻址方式太多的缺点,通过减少指令种类、规范指令格式和简化寻址方式,方便处理器内部的并行处理,提高VLSI器件的使用效率,从而大幅度地提高处理器的性能。

  RISC指令集有许多特征,其中最重要的有:

指令种类少,指令格式规范:RISC指令集通常只使用一种或少数几种格式。指令长度单一(一般4个字节),并且在字边界上对齐。字段位置、特别是操作码的位置是固定的。
寻址方式简化:几乎所有指令都使用寄存器寻址方式,寻址方式总数一般不超过5个。其他更为复杂的寻址方式,如间接寻址等则由软件利用简单的寻址方式来合成。
大量利用寄存器间操作:RISC指令集中大多数操作都是寄存器到寄存器操作,只以简单的Load和Store操作访问内存。因此,每条指令中访问的内存地址不会超过1个,访问内存的操作不会与算术操作混在一起。
简化处理器结构:使用RISC指令集,可以大大简化处理器的控制器和其他功能单元的设计,不必使用大量专用寄存器,特别是允许以硬件线路来实现指令操作,而不必像CISC处理器那样使用微程序来实现指令操作。因此RISC处理器不必像CISC处理器那样设置微程序控制存储器,就能够快速地直接执行指令。
便于使用VLSI技术:随着LSI和VLSI技术的发展,整个处理器(甚至多个处理器)都可以放在一个芯片上。RISC体系结构可以给设计单芯片处理器带来很多好处,有利于提高性能,简化VLSI芯片的设计和实现。基于VLSI技术,制造RISC处理器要比CISC处理器工作量小得多,成本也低得多。
加强了处理器并行能力:RISC指令集能够非常有效地适合于采用流水线、超流水线和超标量技术,从而实现指令级并行操作,提高处理器的性能。目前常用的处理器内部并行操作技术基本上是基于RISC体系结构发展和走向成熟的。

  正由于RISC体系所具有的优势,它在高端系统得到了广泛的应用,而CISC体系则在桌面系统中占据统治地位。而在如今,在桌面领域,RISC也不断渗透,预计未来,RISC将要一统江湖。



CPU的扩展指令集

  对于CPU来说,在基本功能方面,它们的差别并不太大,基本的指令集也都差不多,但是许多厂家为了提升某一方面性能,又开发了扩展指令集,扩展指令集定义了新的数据和指令,能够大大提高某方面数据处理能力,但必需要有软件支持。

MMX 指令集
    MMX(Multi Media eXtension,多媒体扩展指令集)指令集是Intel公司于1996年推出的一项多媒体指令增强技术。MMX指令集中包括有57条多媒体指令,通过这些指令可以一次处理多个数据,在处理结果超过实际处理能力的时候也能进行正常处理,这样在软件的配合下,就可以得到更高的性能。MMX的益处在于,当时存在的操作系统不必为此而做出任何修改便可以轻松地执行MMX程序。但是,问题也比较明显,那就是MMX指令集与x87浮点运算指令不能够同时执行,必须做密集式的交错切换才可以正常执行,这种情况就势必造成整个系统运行质量的下降。

SSE指令集
    SSE(Streaming SIMD Extensions,单指令多数据流扩展)指令集是Intel在Pentium III处理器中率先推出的。其实,早在PIII正式推出之前,Intel公司就曾经通过各种渠道公布过所谓的KNI(Katmai New Instruction)指令集,这个指令集也就是SSE指令集的前身,并一度被很多传媒称之为MMX指令集的下一个版本,即MMX2指令集。究其背景,原来"KNI"指令集是Intel公司最早为其下一代芯片命名的指令集名称,而所谓的"MMX2"则完全是硬件评论家们和媒体凭感觉和印象对"KNI"的 评价,Intel公司从未正式发布过关于MMX2的消息。

  而最终推出的SSE指令集也就是所谓胜出的"互联网SSE"指令集。SSE指令集包括了70条指令,其中包含提高3D图形运算效率的50条SIMD(单指令多数据技术)浮点运算指令、12条MMX 整数运算增强指令、8条优化内存中连续数据块传输指令。理论上这些指令对目前流行的图像处理、浮点运算、3D运算、视频处理、音频处理等诸多多媒体应用起到全面强化的作用。S SE指令与3DNow!指令彼此互不兼容,但SSE包含了3DNow!技术的绝大部分功能,只是实现的方法不同。SSE兼容MMX指令,它可以通过SIMD和单时钟周期并行处理多个浮点数据来有效地提高浮点运算速度。

SSE2指令集
    SSE2(Streaming SIMD Extensions 2,Intel官方称为SIMD 流技术扩展 2或数据流单指令多数据扩展指令集 2)指令集是Intel公司在SSE指令集的基础上发展起来的。相比于SSE,SSE2使用了144个新增指令,扩展了MMX技术和SSE技术,这些指令提高了广大应用程序的运行性能。随MMX技术引进的SIMD整数指令从64位扩展到了128 位,使SIMD整数类型操作的有效执行率成倍提高。双倍精度浮点SIMD指令允许以 SIMD格式同时执行两个浮点操作,提供双倍精度操作支持有助于加速内容创建、财务、工程和科学应用。除SSE2指令之外,最初的SSE指令也得到增强,通过支持多种数据类型(例如,双字和四字)的算术运算,支持灵活并且动态范围更广的计算功能。SSE2指令可让软件开发员极其灵活的实施算法,并在运行诸如MPEG-2、MP3、3D图形等之类的软件时增强性能。Intel是从Willamette核心的Pentium 4开始支持SSE2指令集的,而AMD则是从K8架构的SledgeHammer核心的Opteron开始才支持SSE2指令集的。

SSE3指令集
    SSE3(Streaming SIMD Extensions 3,Intel官方称为SIMD 流技术扩展 3或数据流单指令多数据扩展指令集 3)指令集是Intel公司在SSE2指令集的基础上发展起来的。相比于SSE2,SSE3在SSE2的基础上又增加了13个额外的SIMD指令。SSE3 中13个新指令的主要目的是改进线程同步和特定应用程序领域,例如媒体和游戏。这些新增指令强化了处理器在浮点转换至整数、复杂算法、视频编码、SIMD浮点寄存器操作以及线程同步等五个方面的表现,最终达到提升多媒体和游戏性能的目的。Intel是从Prescott核心的Pentium 4开始支持SSE3指令集的,而AMD则是从2005年下半年Troy核心的Opteron开始才支持SSE3的。但是需要注意的是,AMD所支持的SSE3与Intel的SSE3并不完全相同,主要是删除了针对Intel超线程技术优化的部分指令。

3D Now !指令集
    由AMD公司提出的3DNow!指令集应该说出现在SSE指令集之前,并被AMD广泛应用于其K6-2 、K6-3以及Athlon(K7)处理器上。3DNow!指令集技术其实就是21条机器码的扩展指令集。

  与Intel公司的MMX技术侧重于整数运算有所不同,3DNow!指令集主要针对三维建模、坐标变换 和效果渲染等三维应用场合,在软件的配合下,可以大幅度提高3D处理性能。后来在Athlon上开发了Enhanced 3DNow!。这些AMD标准的SIMD指令和Intel的SSE具有相同效能。因为受到Intel在商业上以及Pentium III成功的影响,软件在支持SSE上比起3DNow!更为普遍。Enhanced 3DNow!AMD公司继续增加至52个指令,包含了一些SSE码,因而在针对SSE做最佳化的软件中能获得更好的效能。

    目前最新的Intel CPU可以支持SSE、SSE2、SSE3指令集。早期的AMD CPU仅支持3DNow!指令集,随着Intel的逐步授权,从Venice核心的Athlon 64开始,AMD的CPU不仅进一步发展了3DNow!指令集,并且可以支持Inel的SSE、SSE2、SSE3指令集。不过目前业界接受比较广泛的还是Intel的SSE系列指令集,AMD的3DNow!指令集应用比较少。


双核心类型
在2005年以前,主频一直是两大处理器巨头Intel和AMD争相追逐的焦点。而且处理器主频也在Intel和AMD的推动下达到了一个又一个的高峰就在处理器主频提升速度的同时,也发现在目前的情况下,单纯主频的提升已经无法为系统整体性能的提升带来明显的好处,并且高主频带来了处理器巨大的发热量,更为不利是Intel和AMD两家在处理器主频提升上已经有些力不从心了。在这种情况下,Intel和AMD都不约而同地将投向了多核心的发展方向在不用进行大规模开发的情况下将现有产品发展成为理论性能更为强大的多核心处理器系统,无疑是相当明智的选择。

    双核处理器就基于单个半导体的一个处理器上拥有两个一样功能的处理器核心,即是将两个物理处理器核心整合入一个内核中。事实上,双核架构并不是什么新技术,不过此前双核心处理器一直是服务器的专利,现在已经开始普及之中。

该用户从未签到

 楼主| 发表于 2007-1-13 14:55:53 | 显示全部楼层
★★★★★内存相关知识★★★★★

内存容量
内存容量是指该内存条的存储容量,是内存条的关键性参数。内存容量以MB作为单位,可以简写为M。内存的容量一般都是2的整次方倍,比如64MB、128MB、256MB等,一般而言,内存容量越大越有利于系统的运行。目前台式机中主流采用的内存容量为256MB或512MB,64MB、128MB的内存已较少采用。

      系统对内存的识别是以Byte(字节)为单位,每个字节由8位二进制数组成,即8bit(比特,也称“位”)。按照计算机的二进制方式,1Byte=8bit;1KB=1024Byte;1MB=1024KB;1GB=1024MB;1TB=1024GB。

    系统中内存的数量等于插在主板内存插槽上所有内存条容量的总和,内存容量的上限一般由主板芯片组和内存插槽决定。不同主板芯片组可以支持的容量不同,比如Inlel的810和815系列芯片组最高支持512MB内存,多余的部分无法识别。目前多数芯片组可以支持到2GB以上的内存,主流的可以支持到4GB,更高的可以到16GB。此外主板内存插槽的数量也会对内存容量造成限制,比如使用128MB一条的内存,主板由两个内存插槽,最高可以使用256MB内存。因此在选择内存时要考虑主板内存插槽数量,并且可能需要考虑将来有升级的余地。


内存主频
内存主频和CPU主频一样,习惯上被用来表示内存的速度,它代表着该内存所能达到的最高工作频率。内存主频是以MHz(兆赫)为单位来计量的。内存主频越高在一定程度上代表着内存所能达到的速度越快。内存主频决定着该内存最高能在什么样的频率正常工作。目前较为主流的内存频率室333MHz和400MHz的DDR内存,以及533MHz和667MHz的DDR2内存。

  大家知道,计算机系统的时钟速度是以频率来衡量的。晶体振荡器控制着时钟速度,在石英晶片上加上电压,其就以正弦波的形式震动起来,这一震动可以通过晶片的形变和大小记录下来。晶体的震动以正弦调和变化的电流的形式表现出来,这一变化的电流就是时钟信号。而内存本身并不具备晶体振荡器,因此内存工作时的时钟信号是由主板芯片组的北桥或直接由主板的时钟发生器提供的,也就是说内存无法决定自身的工作频率,其实际工作频率是由主板来决定的。

    DDR内存和DDR2内存的频率可以用工作频率和等效频率两种方式表示,工作频率是内存颗粒实际的工作频率,但是由于DDR内存可以在脉冲的上升和下降沿都传输数据,因此传输数据的等效频率是工作频率的两倍;而DDR2内存每个时钟能够以四倍于工作频率的速度读/写数据,因此传输数据的等效频率是工作频率的四倍。例如DDR 200/266/333/400的工作频率分别是100/133/166/200MHz,而等效频率分别是200/266/333/400MHz;DDR2 400/533/667/800的工作频率分别是100/133/166/200MHz,而等效频率分别是400/533/667/800MHz。

    内存异步工作模式包含多种意义,在广义上凡是内存工作频率与CPU的外频不一致时都可以称为内存异步工作模式。首先,最早的内存异步工作模式出现在早期的主板芯片组中,可以使内存工作在比CPU外频高33MHz或者低33MHz的模式下(注意只是简单相差33MHz),从而可以提高系统内存性能或者使老内存继续发挥余热。其次,在正常的工作模式(CPU不超频)下,目前不少主板芯片组也支持内存异步工作模式,例如Intel 910GL芯片组,仅仅只支持533MHz FSB即133MHz的CPU外频,但却可以搭配工作频率为133MHz的DDR 266、工作频率为166MHz的DDR 333和工作频率为200MHz的DDR 400正常工作(注意此时其CPU外频133MHz与DDR 400的工作频率200MHz已经相差66MHz了),只不过搭配不同的内存其性能有差异罢了。再次,在CPU超频的情况下,为了不使内存拖CPU超频能力的后腿,此时可以调低内存的工作频率以便于超频,例如AMD的Socket 939接口的Opteron 144非常容易超频,不少产品的外频都可以轻松超上300MHz,而此如果在内存同步的工作模式下,此时内存的等效频率将高达DDR 600,这显然是不可能的,为了顺利超上300MHz外频,我们可以在超频前在主板BIOS中把内存设置为DDR 333或DDR 266,在超上300MHz外频之后,前者也不过才DDR 500(某些极品内存可以达到),而后者更是只有DDR 400(完全是正常的标准频率),由此可见,正确设置内存异步模式有助于超频成功。

  目前的主板芯片组几乎都支持内存异步,英特尔公司从810系列到目前较新的875系列都支持,而威盛公司则从693芯片组以后全部都提供了此功能。


CL设置
内存负责向CPU提供运算所需的原始数据,而目前CPU运行速度超过内存数据传输速度很多,因此很多情况下CPU都需要等待内存提供数据,这就是常说的“CPU等待时间”。内存传输速度越慢,CPU等待时间就会越长,系统整体性能受到的影响就越大。因此,快速的内存是有效提升CPU效率和整机性能的关键之一。

  在实际工作时,无论什么类型的内存,在数据被传输之前,传送方必须花费一定时间去等待传输请求的响应,通俗点说就是传输前传输双方必须要进行必要的通信,而这种就会造成传输的一定延迟时间。CL设置一定程度上反映出了该内存在CPU接到读取内存数据的指令后,到正式开始读取数据所需的等待时间。不难看出同频率的内存,CL设置低的更具有速度优势。

  上面只是给大家建立一个基本的CL概念,而实际上内存延迟的基本因素绝对不止这些。内存延迟时间有个专门的术语叫“Latency”。要形象的了解延迟,我们不妨把内存当成一个存储着数据的数组,或者一个EXCEL表格,要确定每个数据的位置,每个数据都是以行和列编排序号来标示,在确定了行、列序号之后该数据就唯一了。内存工作时,在要读取或写入某数据,内存控制芯片会先把数据的列地址传送过去,这个RAS信号(Row Address Strobe,行地址信号)就被激活,而在转化到行数据前,需要经过几个执行周期,然后接下来CAS信号(Column Address Strobe,列地址信号)被激活。在RAS信号和CAS信号之间的几个执行周期就是RAS-to-CAS延迟时间。在CAS信号被执行之后同样也需要几个执行周期。此执行周期在使用标准PC133的SDRAM大约是2到3个周期;而DDR RAM则是4到5个周期。在DDR中,真正的CAS延迟时间则是2到2.5个执行周期。RAS-to-CAS的时间则视技术而定,大约是5到7个周期,这也是延迟的基本因素。

  CL设置较低的内存具备更高的优势,这可以从总的延迟时间来表现。内存总的延迟时间有一个计算公式,总延迟时间=系统时钟周期×CL模式数+存取时间(tAC)。首先来了解一下存取时间(tAC)的概念,tAC是Access Time from CLK的缩写,是指最大CAS延迟时的最大数输入时钟,是以纳秒为单位的,与内存时钟周期是完全不同的概念,虽然都是以纳秒为单位。存取时间(tAC)代表着读取、写入的时间,而时钟频率则代表内存的速度。

  举个例子来计算一下总延迟时间,比如一条DDR333内存其存取时间为6ns,其内存时钟周期为6ns(DDR内存时钟周期=1X2/内存频率,DDR333内存频率为333,则可计算出其时钟周期为6ns)。我们在主板的BIOS中将其CL设置为2.5,则总的延迟时间=6ns X2.5+6ns=21ns,而如果CL设置为2,那么总的延迟时间=6ns X2+6ns=18 ns,就减少了3ns的时间。

  从总的延迟时间来看,CL值的大小起到了很关键的作用。所以对系统要求高和喜欢超频的用户通常喜欢购买CL值较低的内存。目前各内存颗粒厂商除了从提高内存时钟频率来提高DDR的性能之外,已经考虑通过更进一步的降低CAS延迟时间来提高内存性能。不同类型内存的典型CL值并不相同,例如目前典型DDR的CL值为2.5或者2,而大部分DDR2 533的延迟参数都是4或者5,少量高端DDR2的CL值可以达到3。

  不过,并不是说CL值越低性能就越好,因为其它的因素会影响这个数据。例如,新一代处理器的高速缓存较有效率,这表示处理器比较少地直接从内存读取数据。再者,列的数据会比较常被存取,所以RAS-to-CAS的发生几率也大,读取的时间也会增多。最后,有时会发生同时读取大量数据的情形,在这种情形下,相邻的内存数据会一次被读取出来,CAS延迟时间只会发生一次。

  选择购买内存时,最好选择同样CL设置的内存,因为不同速度的内存混插在系统内,系统会以较慢的速度来运行,也就是当CL2.5和CL2的内存同时插在主机内,系统会自动让两条内存都工作在CL2.5状态,造成资源浪费。

该用户从未签到

 楼主| 发表于 2007-1-13 14:56:49 | 显示全部楼层
好多,看了好久~

大家帮顶下~

该用户从未签到

发表于 2007-1-14 21:37:08 | 显示全部楼层
感觉每部分都是浅尝辄止,不过,既然是扫盲,当然要浅显易懂
头像被屏蔽

签到天数: 6 天

[LV.2]偶尔看看I

发表于 2007-1-19 18:38:48 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

签到天数: 4 天

[LV.2]偶尔看看I

发表于 2007-2-6 21:52:34 | 显示全部楼层
好文章,谢谢,受教了!

该用户从未签到

发表于 2007-2-6 23:51:08 | 显示全部楼层
又 看了一边,!!!

签到天数: 1 天

[LV.1]初来乍到

发表于 2007-2-6 23:55:30 | 显示全部楼层
什么扫盲..
上面的东西  要是都弄懂 就是高手了...
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|国治模拟精品屋 ( 沪ICP备15012945号-1 )

GMT+8, 2024-11-23 15:48 , Processed in 1.065429 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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