图拉丁吧 关注:7,849,101贴子:131,161,412
  • 10回复贴,共1

GPU 架构与技术详解

只看楼主收藏回复

GPU英文全称GraphicProcessingUnit,中文翻译为“图形处理器”。GPU是相对于CPU的一个概念,由于在现代的计算机中(特别是家用系统,游戏的发烧友)图形的处理变得越来越重要,需要一个专门的图形的核心处理器。我们从GPU的发展历程来看看显卡GPU的架构和技术的发展。整合VCD/DVD/HD/BD解压卡在了解了CPU的发展历程之后,我们再来看看GPU的发展过程,其实GPU很多重大改进都与CPU的技术架构相类似。比如最开始我们介绍了古老的CPU协处理器,下面再介绍一个被遗忘的产品——解压卡,资历较老的玩家应该记得。十多年前,电脑的CPU主频很低,显卡也多为2D显示用,当VCD兴起的时候,好多电脑(主频为100MHz以下)无法以软解压的方式看VCD影片,根本运行不起来!ISA接口的VCD解压卡这时,VCD解压卡就出现了,此卡板载专用的解码处理器和缓存,实现对VCD的硬解码,不需要CPU进行解码运算,所以,即使在386的电脑上也可以看VCD了。
PCI接口的DVD解压卡随后,显卡进入了3D时代,并纷纷加入支持VCD的MPEG解码,而且CPU的主频也上来了,无论CPU软解还是显卡辅助解码都可以流畅播放视频,所以VCD解压卡就退出了市场!但DVD时代来临后,分辨率提高很多,而且编码升级至MPEG2,对于CPU和显卡的解码能力提出了新的要求,此时出现了一些DVD解压卡,供老机器升级之用,但由于CPU更新换代更加频繁,性能提升很大,DVD解压卡也是昙花一现,就消失无踪了。


1楼2013-08-04 16:23回复
    我是2楼


    IP属地:广东2楼2013-08-04 16:23
    收起回复
      2025-06-29 08:39:39
      广告
      1、读取顺序
      CPU要读取一个数据时,首先从Cache中查找,如果找到就立即读取并送给CPU处理;如果没有找到,就用相对慢的速度从内存中读取并送给CPU处理,同时把这个数据所在的数据块调入Cache中,可以使得以后对整块数据的读取都从Cache中进行,不必再调用内存。正是这样的读取机制使CPU读取Cache的命中率非常高(大多数CPU可达90%左右),也就是说CPU下一次要读取的数据90%都在Cache中,只有大约10%需要从内存读取。这大大节省了CPU直接读取内存的时间,也使CPU读取数据时基本无需等待。总的来说,CPU读取数据的顺序是先Cache后内存。2、缓存分类前面是把Cache作为一个整体来考虑的,现在要分类分析了。Intel从Pentium开始将Cache分开,通常分为一级高速缓存L1和二级高速缓存L2。在以往的观念中,Cache是集成在CPU中的,L1被称为片内Cache。L1中还分数据Cache在(D-Cache)和指令Cache(I-Cache)。它们分别用来存放数据和执行这些数据的指令,而且两个Cache可以同时被CPU访问,减少了争用Cache所造成的冲突,提高了处理器效能。在P4处理器中使用了一种先进的一级指令Cache——动态跟踪缓存。它直接和执行单元及动态跟踪引擎相连,通过动态跟踪引擎可以很快地找到所执行的指令,并且将指令的顺序存储在追踪缓存里,这样就减少了主执行循环的解码周期,提高了处理器的运算效率。以前的L2Cache没集成在CPU中,而在主板上或与CPU集成在同一块电路板上,因此也被称为片外Cache。但从PⅢ开始,由于工艺的提高L2Cache被集成在CPU内核中,以相同于主频的速度工作,结束了L2Cache与CPU大差距分频的历史,使L2Cache与L1Cache在性能上平等,得到更高的传输速度。L2Cache只存储数据,因此不分数据Cache和指令Cache。在CPU核心不变化的情况下,增加L2Cache的容量能使性能提升,同一核心的CPU高低端之分往往也是在L2Cache上做手脚,可见L2Cache的重要性。现在CPU的L1Cache与L2Cache惟一区别在于读取顺序。


      4楼2013-08-04 16:31
      回复
        3、读取命中率CPU在Cache中找到有用的数据被称为命中,当Cache中没有CPU所需的数据时(这时称为未命中)CPU才访问内存。,从理论上讲,在一颗拥有2级Cache的CPU中,读取L1Cache的命中率为80%。也就是说CPU从L1Cache中找到的有用数据占数据总量的80%,剩下的20%从L2Cache读取。由于不能准确预测将要执行的数据,读取L2的命中率也在80%左右(从L2读到有用的数据占总数据的16%)。那么还有的数据就不得不从内存调用,但这已经是一个相当小的比例了。在一些高端领域的CPU(像Intel的Itanium)中,我们常听到L3Cache,它是为读取L2Cache后未命中的数据设计的—种Cache,在拥有L3Cache的CPU中,只有约5%的数据需要从内存中调用,这进一步提高了CPU的效率。为了保证CPU访问时有较高的命中率,Cache中的内容应该按一定的算法替换。一种较常用的算法是“最近最少使用算法”(LRU算法),它是将最近一段时间内最少被访问过的行淘汰出局。因此需要为每行设置一个计数器,LRU算法是把
        命中行的计数器清零,其他各行计数器加1。当需要替换时淘汰行计数器计数值最大的数据行出局。这是一种高效、科学的算法,其计数器清零过程可以把一些频繁调用后再不需要的数据淘汰出Cache,提高Cache的利用率。缓存技术的发展总之,在传输速度有较大差异的设备间都可以利用Cache作为匹配来调节差距,或者说是这些设备的传输通道。在显示系统、硬盘和光驱,以及网络通讯中,都需要使用Cache技术。但Cache均由静态RAM组成,结构复杂,成本不菲,使用现有工艺在有限的面积内不可能做得很大,不过,这也正是技术前进的源动力,有需要才有进步!


        5楼2013-08-04 16:31
        回复
          你这个帖子是刷经验的,嘻嘻


          IP属地:广东6楼2013-08-04 16:32
          收起回复