在我们学校的交流群中,总是少不了对计算机,硬件各种参数的讨论,作为小白的我总是无法参与其中,毕竟对硬件一无所知。最近在读《鸟哥的Linux私房菜》时,才发现这些东西原来是隶属于计算机基础的内容,遂作此文。
零. 基础知识
- 南桥:南北桥是连接主板上各种硬件的网桥,用来各种设备之间的通信。其中南桥是用来连接速度较慢的设备借口——硬盘,网卡,USB设备等。
- 北桥:区别于南桥,北桥原来是用来连接速度较快的设备借口——CPU,内存,显卡。但是随着CPU的运算速度越来越快,北桥已经成为了性能瓶颈。现在北桥已经消失不见了,Intel使用QPI与DMI技术,AMD使用Hyper Transport技术,可以让CPU与内存和显卡直接通信。
- RISC:Reduced Instruction Set Computer,精简指令集,是CPU的指令集架构。常见的有Oracle的SPARC系列,IBM的PowerPC, 与ARM的CPU。这种指令集一般用于手机,PDA,路由器等,用途极为广泛。
- CISC:Complex Instruction Set Computer,复杂指令集,同RISC一样都是CPU的指令集架构。常见的有AMD,Intel与VIA系列,一般被用于个人电脑。
- 计算机常见的性能指标:无非就是速度与容量。容量中,1T = 1024G 1P = 1024T 1E = 1024P。还有就是硬盘的制造商通常是以10进制作为单位(毕竟只要数一数有多少扇区即可),所以可能会出现格式化后硬盘容量缩水的状况。
一. CPU
- cpu的工作频率:即CPU每秒工作的次数。因为通信的时候频率要相同,这个相同的频率通过前端总线(FSB)来完成。不过CPU的工作频率实在是太快,在cpu的内部还要进行加速,所以有CPU的频率 = 外频(FSB的频率) * 倍频。
- 超频和降频:超频是指提高CPU的外频(一般而言不能修改倍频,这个在出厂时已经被设置死了),以达到更大运算量的需求。现在的CPU还会帮你降频,以达到节能省电的效果。
- 总线位宽与字长:总线位宽即总线在一个时钟周期中传输的数据量,大都为64位。字长是CPU每次能够处理的数据量,注意区别。
- Hyper-Threading和多个核CPU:多个物理内核比较好理解,就是一个CPU外壳中,含有多个CPU单元。Hyper-Threading是把CPU中的重要寄存器分为两组,然后让程序分别使用这两组寄存器,利用这项技术可以检测到比实际更多的CPU。
- CPU的任务负载:指的是CPU在单一时间点所负责的任务数量;在Linux下可以用uptime来查看CPU的负载;我们亦可以通过下面的代码来模拟CPU高负载的情况。
# sacle代表的是小数位数
# a()在bc中代表的是arctan
# 通过在bc最后加入&,来吧该任务放到后台执行
echo "scale = 100000; 4 * a(1)" | bc -lq &
echo "scale = 100000; 4 * a(1)" | bc -lq &
echo "scale = 100000; 4 * a(1)" | bc -lq &
echo "scale = 100000; 4 * a(1)" | bc -lq &
二. 内存(主存)
CPU中使用到的数据都是来源于内存;同时,当CPU把数据处理完毕以后,又会把数据放回内存。由此可见内存的重要性,如果内存的容量偏小,数据读写性能不足,那么电脑的性能也会下降。
其实在CSAPP中也有写,内存的主要组件为DRAM,而DRAM又可分为SDRAM和DDR SRAM两类。
现在市面上用的都是DDR SRAM,其中DDR的意思为double data rate,所以传输速率要比SDRAM快。
当然,也并不只是单纯的两倍,比如DDR2是4倍,DDR3是8倍。
现在DDR的带宽(频率X位宽)已经可以达到GB/s的速度了。
另:内存的多通道设计——传统的总线位宽太小,为了加大这个位宽,经常需要把两个内存组合在一起,这就是双通道设计的概念,多通道设计的概念也是如此。
三. 显卡
- 显存:由于每个图像显示的颜色会占用内存,所以干脆在显卡上集成内存,成为显存。
- GPU:早期3D游戏和动画的运算都要考CPU,加大了CPU的负荷,所以厂商在显卡上嵌入一个3D加速的芯片,称为GPU。
- 显卡插槽的演变——PCI->AGP->PCIe;当然排在后面的插槽带宽非常高,其中PCIe的带宽已经可以达到几G/s了。
- 显卡与显示屏相连:VGA接口->DVI接口->HDMI接口
四. 硬盘
- HDD:HDD就是用主轴马达驱动碟片,然后机械手臂在磁片上进行读写,HDD的优点是容量高,但是读写速度慢。
- SSD:SSD是利用闪存的读写,不需要转动,但是闪存有写入限制,所以SSD的优点是读写速度快,但容量相对低。
- HDD与SSD的应用:由于HDD上的机械手臂是精密设备,因此应该避免震动硬盘。其他的话,一般SSD用来做系统盘,HDD则作为另外一个数据盘(当然这个并不是绝对的)。
- 磁盘分区:有旧式的MS-DOS的MBR模式,也有较新的GPT模式。这个我以后的博文中也会提到。
- 磁盘与主板的接口:
- SATA:一般是个人笔记本电脑的硬盘接口,SATA 3.0接口的速度可达600MB/s
- SAS:代替了之前的SCSI接口,用于各种服务器,借口的速度可达1200MB/s,个人电脑上一般都没有这种接口。
- USB:这个比较简单,不解释了,其最大的特点就是速度慢。
- 磁盘的长相:(这张图应该能把sector,track和Cylinder解释清楚了)
五. 主板
- 卡装在哪个插槽上,对性能的影响也很大,比如有的可以直接和CPU通信,有的却要进入南桥和其他设备抢带宽。
- 设备的I/O地址:主板用来辨识各个设备之间的方法;IRQ(Interrupt ReQuest)中断请求,不解释,看CSAPP。
- CMOS和BIOS:CMOS是主板上的一块芯片,用于记录主板上的各种参数,记录这些数据要有电,所以主板上才有电池。BIOS是一种firmware,使用ROM来进行软件的写入,他是写入到主板上的某一块flash或EEPROM,它可以在计算机启动的时候执行,加载CMOS中的参数,调用存储设备中的引导程序,进入操作系统。
六. 其他
系统不稳定的可能原因——系统过热,主要现象是夏天容易宕机,考虑加几个风扇吧!