3
出来混,迟早要还的。

或许你会说,不要不要,我要写代码搞软件,不去搞硬件。孩子,别忘了,你写的代码就是运行在这些东西所组成的机子上,如果你不了解它,你会对编程语言的一些概念产生困惑:如Java的IO系统,搞不清流、过滤器流、阅读器等概念的区分,还有一些性能瓶颈的推断和测量也是得要有点点的硬件知识。而且下面要讲的硬件知识也不算细,算是一个感性的认识,更多的是概念。

首先先来个物理,单位定义下:
MHz:兆赫兹,1兆赫相当于1000千赫(KHz),也就是10^6赫兹。

课外:
正弦(对边/斜边)波幅度在1秒钟内的重复变化次数称为信号的“频率”波行进一个周期所经过的距离称为“波长”,用λ表示,以米为单位。f(频率)、T(周期)和λ(波长)存在如下关系:
f=1/T
c=λ×f
其中,c是电磁波的传播速度,等于3x10^8米/秒。

CPU

CPU频率:简单地说,频率就是CPU每秒可以进行的工作次数。例如:Intel的Core2 Duo型号E8400的CPU频率为3.0GHz,表示这个CPU在一秒内可以进行3.0x10^9次工作(一次工作执行N条指令)。

注意:不同的CPU之间不能单纯以频率来判断运算性能。这是因为每个CPU的微指令集不相同,架构也不一样。每次能够进行的工作指令数也不同。

CPU外频:指的是CPU与外部组件进行数据传输/运算时的速度。

             平时说的超频就是指通过主板的设定功能将外频调为更高的频率。
             内存与CPU的通信速度靠的是外频频率。

CPU倍频:指CPU内部用来加速工作性能的一个倍数
CPU频率=CPU外频xCPU倍频
例如:Intel的Core2 Duo型号E8400的CPU频率为3.0GHz,外频是333MHz,因此倍频就是9
我现在用CPU是AMD A10-5800K,外频是100MHz,倍频是38.0,则3.82GHz
字组大小(word size):CPU每次能够处理的数据量。

芯片组:控制各个组件的通信;
北桥(芯片组):负责连接速度较快的CPU、内存与显卡等组件;
南桥(芯片组):负责连接速度较慢的周边接口,包括硬盘、USB、网卡等。

系统总线:北桥的总线
I/O(输入输出)总线:南桥的总线
鸟哥给的资料:北桥支持的频率高达333/400/533/800/1066/1333/1600MHz等。
前端总线速度(FSB):北桥所支持的频率,CPU是通过前端总线来与内存发生联系的。
总线宽度:北桥每次传输的位数。(常见是32/64位bit)
总线频宽= FSB x 总线宽度
假设前端总线速度位1600MHz,则内存与北桥的频宽为12.8GB/s = 1600MHz x 64bit
= 1600 x 10^6 x 8Bytes = 12800MB/s = 12.8GB/s

内存(Memory)

动态随机访问内存(Dynamic Random Access Memory, DRAM):挥发性内存,断定后数据消失。
DRAM分为以下:
SDRAM :与DDR SDRAM在于引脚、工作电压、传输数据量不同。
DDR SDRAM:DDR是双倍数据传送速度(Double Data Rate),一次工作周期中进行两次数据的传送,感觉跟CPU的倍频似的。

SDRAM/DDR 型号 数据宽度(bit) 外频(MHz) 频率(MHz) 频宽
SDRAM PC100 64 100 100 800MB/s
SDRAM PC133 64 133 133 1064MB/s
DDR DDR266 64 133 266 2.1GB/s
DDR DDR400 64 200 400 3.2GB/s
DDR DDRII800 64 400 800 6.4GB/s
DDR DDRIII1600 64 800 1600 12.8GB/s

DDR前提是两条内存才形成双倍数据传输速度,也就是双通道设计,在主板一般会有四根内存插槽,而颜色却只有两种,两两成对,这就是为了双通道设计的,要像启动双通道的功能,你就必须将两根容量相同的内存插在相同颜色的插槽中!
从上表发现,我现在用的两条芝奇F3-12800CL9-4GBXL DDR3 1600MHz是25.6GB/s(单条则12.8GB/s),频率为3600MHz 12.8GB/s(单条则6.4GB/s),但总容量却有8G,值得思考,频宽再大是否有必要。
DDR SDRAM又发展为 DDR、DDRII、DDRIII等。

内存和CPU的关系是通过前端总线发生关系的。一般是CPU外频和内存的外频一致为较好。但随着CPU的发展,到了奔腾4年代,内存和CPU的工作模式发生了改变,前端总线的概念也变得有些复杂。奔腾4 CPU采用了Quad Pumped(4倍并发)技术,所以前端总线已经不和CPU的频率相同了。该技术可以使系统总线在一个时钟周期内传送4次数据,也就是传输效率是原来的4倍,相当于用了4条原来的前端总线来和内存发生联系。在外频仍然是133MHZ的时候,前端总线的速度增加4倍变成了133X4=533MHZ,当外频升到200MHZ,前端总线变成 800MHZ。
举个例子:在以前P3 的时候,133的外频,内存的频率就是133,CPU的前端总线也是133,三者是一回事。现在P4的CPU,在133的外频下,前端总线达到了 533MHZ,内存频率是266(DDR266)。问题出现了,前端总线是CPU与内存发生联系的桥梁,P4这时候的前端总线达到533之高,而内存只有 266的速度,内存比CPU的前端总线慢了一半,理论上CPU有一半时间要等内存传数据过来才能处理数据,等于内存拖了CPU的后腿。这样的情况的确存在的,845和848的主板就是这样。于是提出一个双通道内存的概念,两条内存使用两条通道一起工作,一起提供数据,等于速度又增加一倍,两条DDR266 就有266X2=533的速度,刚好是P4 CPU的前端总线速度,没有拖后腿的问题。外频提升到200的时候,CPU前端总线变为800,两条DDR400内存组成双通道,内存传输速度也是800 了。

上述前端总线是INTEL P4的FSB概念,它的对手AMD的CPU有所不同。
引用数据:旧的462针脚的AMD CPU,采用ev6前端总线,相当于外频的两倍,也就是133外频时,AMD 462脚的CPU的FSB是266,使用DDR266内存和他搭配就刚刚好,如果用两条DDR266做成双通道,虽然内存有533的传输速度,但对于 266的FSB,作用不大,所以双通道内存对CPU的帮助不明显。
新的AMD 754/939 64位CPU,内部就集成了内存管理器(以前内存管理器在主板心片里),所以AMD 64位CPU的前端总线FSB频率与CPU实际频率一致
所以我现在使用AMD A10-5800K ,外频是100MHz,倍频是38.0,则3.82GHz,则需要配合3.82GHz的内存,京东推荐搭配买的内存是:两条芝奇F3-12800CL9-4GBXL DDR3 1600MHz是25.6GB/s(单条则12.8GB/s),频率为3600MHz,也就是3.6GHHz,刚好差不多。是12.8GB/s(单条则为6.4GB/s),频率是CPU的一半

以下是一些实际的数据:

图片描述

图片描述

CPUZ工具展示芝奇F3-12800CL9-4GBXL的内存频率是800MHz,是因为这根内存条是双面存储颗粒的内存条,所以它实际是1600MHz,这个材料性质,与单双通道无关,800MHz也称"工作频率",而1600MHz是"等效频率"。
工作频率是内存颗粒实际的工作频率,但是由于DDR内存可以在脉冲的上升和下降沿都传输数据,因此传输数据的等效频率是工作频率的两倍;而DDR2内存每个时钟能够以四倍于工作频率的速度读/写数据,因此传输数据的等效频率是工作频率的四倍。

lenovo超级本U330P的内存4GB 海力士 DDR3L 1600MHz
图片描述

图片描述

静态随机访问内存(Static Random Access Memory,SRAM),用来做CPU的缓冲,一般是有几层缓冲,如第二层缓冲(L2 Cache),如
图片描述
AMD CPU

图片描述
lenovo超级本U330P的Intel CPU

只读存储器(Read Only Memory,ROM),如BIOS(Basic Input OutputSystem)这一套程序就写死在主板上面的一个ROM内存芯片当中。(现其实都写在闪存(Flash Memory)或EEPROM中)
CMOS(Complementary Metal Oxide Semiconductor),一种芯片,记录CPU与内存的频率参数,已经其他组件的各项参数,这芯片需要额外的电池供电来发挥记录功能,这就是为什么主板有个电池的缘故。CMOS内的数据时交由BIOS这个程序去读取和更新。

显卡(VGA(Video Graphics Array)

显卡插槽分为PCI、AGP、PCI-Express(PICe)。

规格 宽度(bit) 速度(MHz) 频宽
PCI 32 33 133MB/s
PCI2.2 64 66 533MB/s
PCI-X 64 133 1064MB/s
AGP 4x 32 66x4 1066MB/s
AGP 8x 32 66x8 2133MB/s
PCIe x1 250MB/s
PCIe x8 2GB/s
PCIe x16 4GB/s

假设桌面分辨率为1024x768分辨率,且使用全彩(每个像素占用3bit的容量),则需要2.25MB内存。因为总像素为1024x768=786432,2.25MB=786432*3bit

机械硬盘

扇区(Sector),磁盘的最小存储单位,在物理组成方面,每个扇区大小为512bytes,这个是不会变的。
磁道(Track),扇区组成的一个圆。
柱面(Cylinder),在多硬盘上面,所有盘片上面的同一个磁道可以组成一个柱面。柱面是我们一般分割硬盘时最小的单位。
硬盘存储量的简单算法是:Header Cyliner Sector * 512Bytes
IDE接口,每秒理论传输速度可达133MB
SATA接口,每秒理论传输速度现可达600MB。目前个人计算机主流硬盘接口就是这种。
SCSI接口,常见于工作站等级以上的硬盘传输接口。这种接口硬盘在控制器上含有一块处理器,则不耗费CPU资源。

主板

南桥北桥、CMOS与BIOS上面已经说了。
设备I/O地址与IRQ中断信道

电源

电源主要注意能源转换率

巨人的肩膀(参考):
《MHz》百度百科http://baike.baidu.com/link?u...
《内存频率》百度百科http://baike.baidu.com/link?u...
《鸟哥的Linux私房菜 基础学习篇第三版》


电脑杂技集团
208 声望32 粉丝

这家伙好像很懂计算机~