查看: 4231|回复: 23
收起左侧

[讨论] 姗姗来迟,鱼儿大片(未删减版)

[复制链接]
caolizhen
发表于 2009-7-24 11:56:20 | 显示全部楼层 |阅读模式
因为种种纠结的原因这篇文章没有按时送来= =我道歉。

再次重申一下,本文并非面向全部DIYer,仅仅是面向那些基础知识牢固并且对理论核心十分渴求的朋友。

PS:本文非常适合某些过度自负的DIYer,你在这里可以找到目标而不是自满。又不爽不满者可以在QQ和我互喷。


CPU:
1 到底什么叫做主频?

有朋友知道主频=倍频X外频,但是主频的真正定义却并非如此,主频是指在1秒内所发射的指令(instruction)数目。
很多朋友知道主频并不能完全表示一款CPU的性能,因为指令这种东西本身是可以并行的(下几段我们会进一步探讨这个问题),而且还有缓存(cache)等等诸多因素。

外频和倍频的问题我请教了一些专业人员,这种技术在业内称为
Multiclock Domain,其实就是将发射端口区域化(domain),为了和外部设备的频率想调和所引入的技术。

2 cache的浅谈

在谈cache的时候我们不得不提及内存,如果CPU需要的数据从内存中寻找,那么需要消耗的时钟周期是相当多的,这里影响的一个是发送read指令,另一个就是DDR本身的频率限制(下文会继续深入理解)造成的大量周期损失,所以为了减少这部分损失我们人为引入了cache。

PS:这里专业的叫法称之为局部性原理,并且分为时间局部性原理和空间局部性原理。

在谈这些东西之前我们还是得引入一些名词以便下文的深入思考。
组相联是cache的内存地址映射三种方式之一,另外两种映射方式为直接映射和全相联。
直接映射direct mapping)是最简单的方式,每条cache-line都有固定对应的若干主内存地址。
全相联(
fully associative)是主内存中任何地址的数据都可以存放在cache中的任何一条cache-line里。
组相联Set-associative)是指数条cache-line被为安排一组,每组可以对应主内存中的若干固定地址。每组包含多少条cache-line,就是多少路相联度。

这些羞涩难懂的名词大家肯定是不喜欢的,但是因为”cache越大命中率越高“的认识深入人心,所以不得不提及。

如果大家仔细看CPU-Z,在cache一列中会说明某级的cache是几路的,正如上文的引用所说,这表现了cache中组相联的数量,这种相联可以增加单位容量cache的命中率(因为每组 cache line 对应的主内存地址更多),但是如果命中失效则等待的时钟周期优惠相当长

3 并行运算如何去实现?
说到并行,大家可能会用一般的理解方式去理解,也就是将一些数据横排,这样单位之间内通过的数据量会增多,这是一种比较简单的”并行“(parallel)概念,但是在CPU中的很多并行和这些数据并行的实现方法并非大相径庭。


       首先我们需要回顾流水线(pipeline)的知识。流水线类似于一条生产链,让机器不间断生产,工作,因为其较高的效率被引入了CPU的涉及。我们举一个例子,一个没有流水线的CPU如果发射两个指令,那么首先除了取值,解码等工作外,指令会进入CPU的ALU(Arithmetic and Logic Unit,逻辑运算单元)当这个指令被完全处理完时,这时候第二个指令才会进入。因为ALU的处理能力是有限的,所以一个指令需要多个ALU穿起来,然会运算,第一个ALU运算一部分,之后将数据存储到寄存器register)再由第二个ALU进行处理,这样的话第一个ALU在之后的时间都是闲置不工作的,这就造成了浪费。
       而如果使用流水线进行处理,当第一个ALU处理完第一个指令的时候,第二个指令立刻被调用,然后再由第一个ALU处理,以此类瑞,形成流水线的工作方式。(但是其中还有很多指令具有非独立性和跳转的问题,这里不再继续讨论,似乎是很简单的东西)

那么我们所说的并行运算,实际上就是利用流水线的特性从而将指令并行(同时发射多个指令),我们称之为co-issue技术。


GPU

1 manycore

很多人把一款显卡叫做单核心显卡,CF,SLI等技术的应用叫做双核心显卡。
实际上GPU的内部构架遵循manycore的方式,也就是多核心,为什么这么说呢?


首先看看单核心的CPU,单核心的CPU如果进行多任务处理的话,即使是使用乱序执行(out of order此技术的引入是为了减少指令独立所造成的流水线停顿)也必须处理完当前的任务之后才能进行下一个任务(换句话说因为线程单一所以正在处理的任务也是单一的)

再看看我们的GPU。


1 分离式结构

早期的设置,在像素着色器(Pixel shader)处理时,顶点着色器(Vertex shader)是闲置的,换句话说这两个着色器并不是一个core,所以不能称之为单核心。

2 统一结构

在流处理器(Stream Processor)处理任务是,有部分处理顶点,有部分处理像素,那么也就是说他们的时钟发射器并不匹配,所以并非单一线程,又何来单核心之说?

SLI,CF正确的叫法是多路,而不是多核心。

本小节的最后我给大家留下一个小小的问题


通过这张Xenos构架图,推断出Xenos是几核心?

2 R600,700的流处理器数要除5?

很多杂志上都会说R600,R700采用超标量构架,所以流处理器的数量要除以5才可以和G80,G90相比较,其实在我看来这种观点是错误的。

首先要说一下什么叫做超标量构架,它指的是在同一时间内可以有多条指令在跑分离的数据项。

那么超标量在R600,R700中如何体现的呢?(其实我想贴图,但是网络上的图片多半没有表现出这种特性)
在R600,R700中一组流处理器(也可以称为矩阵)包含一个4D单元和一个1D单元(这里的D代表了单元的处理能力,1D是一次开平方运算,4D就是四次,4D是矢量vector
单元,1D是标量scalar单元,D也可以理解为ALU的长度),单位周期内会发射两个指令,1个给4D单元,一个给1D单元,这两个指令是独立了,也就是超标量中的分离,从而达到了超标量的设置。

我们反观G80,G90,它是由1D标量单元组成,1个单元对应一个发射端口,单位周期处理一个1D数据(3D,4D指令会拆分成1D指令,不过其实深入来看是将多个1D单元合并成mutil process多重处理单元也就是MP进行处理)

在R600中一共有64个阵列,也就是64*(4+1)个相对于1D性能的处理单元,而G80是128个(其他的构架大相径庭差别仅在数量)。
因为64个4D+1D单元的性能是标量1D单元的320倍,所以R600就被称为320个流处理器。但是如果是按照流处理器数量来看那也应该是64*(1+1),而不是那个5倍关系。

3 G80?SIMD,MIMD?

前段时间我一直在困扰这个问题,SIMD(Single Instruction Multiple Data单指令多数据),MIMD(Multiple Instruction Multiple Data 多指令多数据)到底如何去区分,现在通过和不少朋友讨论我稍微有一些理解了。

首先,因为GPU的顺序结构(in order),所以单个处理单元都是SIMD,而区分SIMD和MIMD就要看这个multi是否实现。mutil的实现有很多方式,但关键是怎么去看待,这里没有标准的区分原则,比如上文中的MP就可以理解为multi,也可以理解为单一指令(因为同一时间内MP中的流处理器跑的步骤都是一样的)。

RAM

DDR内存有何特点?

DDR2 800的实际频率是多少,可能很多DIYer告诉我是800/2=400,但实际上还忽略了其他的一些技术,其实DDR系列内存的实际频率多在200附近,这又是为什么呢?

数据预取(
Prefetch data)普通的SDRAM内存在一个时钟周期内只能进行一次操作,这个操作可以是读取(read)也可以是写入(write);而在DDR中,最大的成功之处就是引入了数据预取概念,在DRAM的内部,假如是读的操作过程,那么从指定储存单元取得的数据必须经过两个不同的操作:一个是通过DRAM内部的数据总线往外输出数据到芯片,另一个是通过读出放大器将数据写回到DRAM,达到恢复数据的目的。DRAM在内部时钟信号的触发下,一次传送8bit的数据,再分成两路4bit数据传给放大器,由放大器(Amplifiers)将它们合并为一路数据流,然后由发送器按照在外部时钟上升沿与下降沿(DIMM,dual in-line memory module双向输出信息)分两次传输4bit的数据原则,把数据传输给北桥。这样,如果时钟频率为100MHz,那么在I/O端口处,由于是上下沿触发,那么传输频率就是200MHz。


通过上面的解释我们可以理解,DDR内存是通过并行数据来达到高速的数据吞吐量的。


硬盘(温式)

1 单碟容量至上?

很多朋友知道单碟容量是影响硬盘读取速度的影响之一,因为我们的硬盘基本都是角速度不变,如果单碟容量上升,一圈内滑过的数据量也便增多,所以从这个角度来看读取速度便会随着单碟容量的上升而上升,但是单碟容量增长并不意味着所有的性能都会上升,寻道时间就是一个比较有影响的指数,因为单碟容量的上升,数据的位置所需的精度更高,那么磁头想要读取便需要更长的时间,而我们的日常应用更多是注重寻道时间的。
2 未来的发展和期望

温式硬盘目前依然还有众多可以改进的地方,比如寻道算法,容量密度的提升,但是随着时间的流逝,这种传统的机械式硬盘肯定会被淘汰,但在一段时间内他依然是市场当中的活跃分子。

硬盘(固式)

1 SLC?MLC?

网络上经常谈及固态硬盘,而出现最多的名词就是SLC和MLC了,那么SLC,MLC又是什么呢?固态硬盘的储存介质NAND颗粒和半导体类似,依靠栅极控制源流导通或者闭合状态,利用0,1记录数据,而MLC是一个单元4个储存空间,为了区分4个单元就必须以差值更高的电压进行控制,而SLC是两个储存单元,需要的电压差较小(所以后者寿命要长)

2 固态硬盘的不足

首先颗粒的寿命较短

其次寿命成本较难控制(如果我们使用颗粒来组建大容量的固态硬盘,颗粒数量较多,那么对控制IC(简单的说是为了平摊数据的玩意)的要求就比较高了,当然也有类似冗余的RAID,但这些都始终无法解决这个悖论,就是说容量和寿命上去了,价格会几乎程几何倍数上升,而且容量和寿命很难掌握平衡。)

最后就是很多硬盘厂家没有较为完整的固态硬盘生产链,所以更换成本较高,甚至放弃生产,阻碍了普及

3 未来与期望

固态硬盘并非未来唯一的高效储存方案,还有忆阻器,赛道内存与其相互竞争。我对其未来的个人看法如下

1 混合硬盘,集成NAND颗粒和传统物理硬盘,将一些小的,连续性的,缓存方面的放在NAND中,而主要数据依然在硬盘里

2 MID这类需要小体积的东东。

3 取代一般移动硬盘



这么长的文章,鱼儿我可是一个字一个字打出来的,也许里面存在很多不完善不严谨的地方,但确实是凝聚了自己的一份汗水和知识,文章绝对是自己原创,有部分资料引自网络,但我也绝非只是把他们简简单单复制过来就ok了的,里面会包含我自己的见解和一些有利于读者理解的一些批注。

最后,希望大家能够互相交流,3Q。








[ 本帖最后由 caolizhen 于 2009-8-12 12:48 编辑 ]

评分

参与人数 2人气 +4 收起 理由
永远Ъù分手 + 3 最后一个(*^__^*)
foreverhyx + 1 小鱼辛苦~

查看全部评分

foreverhyx
发表于 2009-7-24 13:18:12 | 显示全部楼层
坐下慢慢学习

不会是一个流处理单元就是一个核心吧?

[ 本帖最后由 foreverhyx 于 2009-7-24 13:25 编辑 ]
kafantravel 该用户已被删除
发表于 2009-7-24 13:45:56 | 显示全部楼层
支持,我们论坛需要这样的基础性的知识大片。
永远Ъù分手
发表于 2009-7-24 18:38:19 | 显示全部楼层
赶紧呼叫版主来加亮
caolizhen
 楼主| 发表于 2009-7-24 19:11:58 | 显示全部楼层

回复 3楼 kafantravel 的帖子

我觉得这应该不能算基础了吧。。。。。

还有谢谢各位的支持
kafantravel 该用户已被删除
发表于 2009-7-24 21:18:52 | 显示全部楼层
原帖由 caolizhen 于 2009-7-24 19:11 发表
我觉得这应该不能算基础了吧。。。。。

还有谢谢各位的支持



基础不等于低级,呵呵。
比如基础科学,就是数学、物理。

计算机科学的基础科学,就是CPU的原理、设计,各芯片组、电路、元件的原理等……

[ 本帖最后由 kafantravel 于 2009-7-24 22:46 编辑 ]
caolizhen
 楼主| 发表于 2009-7-24 21:35:25 | 显示全部楼层

回复 6楼 kafantravel 的帖子

喔。。。。看来我基础都没打好。。。。。
caolizhen
 楼主| 发表于 2009-7-24 21:35:58 | 显示全部楼层

回复 2楼 foreverhyx 的帖子

确切地说是一组算一个core
foreverhyx
发表于 2009-7-25 08:15:46 | 显示全部楼层

回复 8楼 caolizhen 的帖子

看来还是读懂了一些内容  
谢谢小鱼
caolizhen
 楼主| 发表于 2009-7-25 10:39:59 | 显示全部楼层
嘿嘿。。。

顺便一提,答对我出的那个Xenos的问题我可以给1点人气哦
您需要登录后才可以回帖 登录 | 快速注册

本版积分规则

手机版|杀毒软件|软件论坛| 卡饭论坛

Copyright © KaFan  KaFan.cn All Rights Reserved.

Powered by Discuz! X3.4( 沪ICP备2020031077号-2 ) GMT+8, 2025-1-23 20:09 , Processed in 0.133552 second(s), 17 queries .

卡饭网所发布的一切软件、样本、工具、文章等仅限用于学习和研究,不得将上述内容用于商业或者其他非法用途,否则产生的一切后果自负,本站信息来自网络,版权争议问题与本站无关,您必须在下载后的24小时之内从您的电脑中彻底删除上述信息,如有问题请通过邮件与我们联系。

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