老农的计算机学习笔记(二)硬件篇_k9k4g08u0m与k9f2g08uom芯片的区别-程序员宅基地

技术标签: 硬件  计算机  


硬件体系

计算机硬件系统的典型结构是冯·诺伊曼结构,它由运算器控制器、存储器和输入、输出设备组成,采用“指令驱动”方式。当初,它是为解非线性、微分方程而设计的,并未预见到高级语言、操作系统等的出现,以及适应其他应用环境的特殊要求。在相当长的一段时间内,软件子系统都是以这种冯·诺伊曼结构为基础而发展的。但是,其间不相适应的情况逐渐暴露出来,从而推动了计算机系统结构的变革。

计算机系统中所使用的电子线路和物理设备,是看得见、摸得着的实体,如中央处理器(CPU)、存储器、外部设备(输入输出设备、I/O设备)及总线等。个人电脑(PC:personalcomputer)的主要结构,主机:主板、CPU(中央处理器)、主要储存器(内存)、扩充卡(显示卡、声卡、网卡等有些主板可以整合这些)、电源供应器、光驱、次要储存器(硬盘)外设:显示器、键盘、鼠标(音箱、摄像头,外置调制解调器MODEM等)。

主板以及总线

主板,又叫主机板(mainboard)、系统板(systemboard)或母板(motherboard);它安装在机箱内,是微机最基本的也是最重要的部件之一。 主板一般为矩形电路板,上面安装了组成计算机的主要电路系统,一般有BIOS芯片、I/O控制芯片、键盘和面板控制开关接口、指示灯插接件、扩充插槽、主板及插卡的直流电源供电接插件等元件。

主板采用了开放式结构。主板上大都有6-15个扩展插槽,供PC机外围设备的控制卡(适配器)插接。通过更换这些插卡,可以对微机的相应子系统进行局部升级,使厂家和用户在配置机型方面有更大的灵活性。总之,主板在整个微机系统中扮演着举足轻重的角色。可以说,主板的类型和档次决定着整个微机系统的类型和档次。主板的性能影响着整个微机系统的性能。

芯片组(Chipset)是主板的核心组成部分,几乎决定了这块主板的功能,进而影响到整个电脑系统性能的发挥。按照在主板上的排列位置的不同,通常分为北桥芯片和南桥芯片。北桥芯片提供对CPU的类型和主频、内存的类型和最大容量、ISA/PCI/AGP插槽、ECC纠错等支持。南桥芯片则提供对KBC(键盘控制器)、RTC(实时时钟控制器)、USB(通用串行总线)、Ultra DMA/33(66)EIDE数据传输方式和ACPI(高级能源管理)等的支持。其中北桥芯片起着主导性的作用,也称为主桥(Host Bridge)。

主板的平面是一块PCB(印刷电路板),一般采用四层板或六层板。相对而言,为节省成本,低档主板多为四层板:主信号层、接地层、电源层、次信号层,而六层板则增加了辅助电源层和中信号层,因此,六层PCB的主板抗电磁干扰能力更强,主板也更加稳定。

在电路板下面,是4层有致的电路布线;在上面,则为分工明确的各个 部件:插槽、芯片、电阻、电容等。当主机加电时,电流会在瞬间通过CPU、南北桥芯片、内存插槽、AGP插槽、PCI插槽、IDE接口以及主板边缘的串口、并口、PS/2接口等。随后,主板会根据BIOS(基本输入输出系统)来识别硬件,并进入操作系统发挥出支撑系统平台工作的功能。

任何一个微处理器都要与一定数量的部件和外围设备连接,但如果将各部件和每一种外围设备都分别用一组线路与CPU直接连接,那么连线将会错综复杂,甚至难以实现。为了简化硬件电路设计、简化系统结构,常用一组线路,配置以适当的接口电路,与各部件和外围设备连接,这组共用的连接线路被称为总线。采用总线结构便于部件和设备的扩充,尤其制定了统一的总线标准则容易使不同设备间实现互连。
微机中总线一般有内部总线、系统总线和外部总线。内部总线是微机内部各外围芯片与处理器之间的总线,用于芯片一级的互连;而系统总线是微机中各插件板与系统板之间的总线,用于插件板一级的互连;外部总线则是微机和外部设备之间的总线,微机作为一种设备,通过该总线和其他设备进行信息与数据交换,它用于设备一级的互连。
另外,从广义上说,计算机通信方式可以分为并行通信和串行通信,相应的通信总线被称为并行总线和串行总线。并行通信速度快、实时性好,但由于占用的口线多,不适于小型化产品;而串行通信速率虽低,但在数据通信吞吐量不是很大的微处理电路中则显得更加简易、方便、灵活。串行通信一般可分为异步模式和同步模式。---随着微电子技术和计算机技术的发展,总线技术也在不断地发展和完善,而使计算机总线技术种类繁多,各具特色。

采用总线结构的主要优点

1、面向存储器的双总线结构信息传送效率较高,这是它的主要优点。但CPU与I/O接口都要访问存储器时,仍会产生冲突。
2、CPU与高速的局部存储器和局部I/O接口通过高传输速率的局部总线连接,速度较慢的全局存储器和全局I/O接口与较慢的全局总线连接,从而兼顾了高速设备和慢速设备,使它们之间不互相牵扯。
3、简化了硬件的设计。便于采用模块化结构设计方法,面向总线的微型计算机设计只要按照这些规定制作cpu插件、存储器插件以及I/O插件等,将它们连入总线就可工作,而不必考虑总线的详细操作。
4、简化了系统结构。整个系统结构清晰。连线少,底板连线可以印制化。
5、系统扩充性好。一是规模扩充,规模扩充仅仅需要多插一些同类型的插件。二是功能扩充,功能扩充仅仅需要按照总线标准设计新插件,插件插入机器的位置往往没有严格的限制。
6、系统更新性能好。因为cpu、存储器、I/O接口等都是按总线规约挂到总线上的,因而只要总线设计恰当,可以随时随着处理器的芯片以及其他有关芯片的进展设计新的插件,新的插件插到底板上对系统进行更新,其他插件和底板连线一般不需要改。
7、便于故障诊断和维修。用主板测试卡可以很方便找到出现故障的部位,以及总线类型。
采用总线结构的缺点

由于在CPU与主存储器之间、CPU与I/O设备之间分别设置了总线,从而提高了微机系统信息传送的速率和效率。但是由于外部设备与主存储器之间没有直接的通路,它们之间的信息交换必须通过CPU才能进行中转,从而降低了CPU的工作效率(或增加了CPU的占用率。一般来说,外设工作时要求CPU干预越少越好。CPU干预越少,这个设备的CPU占用率就越低,说明设备的智能化程度越高),这是面向CPU的双总线结构的主要缺点。同时还包括:
1、利用总线传送具有分时性。当有多个主设备同时申请总线的使用是必须进行总线的仲裁。
2、总线的带宽有限,如果连接到总线上的某个硬件设备没有资源调控机制容易造成信息的延时(这在某些即时性强的地方是致命的)。
3、连到总线上的设备必须有信息的筛选机制,要判断该信息是否是传给自己的。

如果说主板(Mother Board)是一座城市,那么总线就像是城市里的公共汽车(bus),能按照固定行车路线,传输来回不停运作的比特(bit)。这些线路在同一时间内都仅能负责传输一个比特。因此,必须同时采用多条线路才能传送更多数据,而总线可同时传输的数据数就称为宽度(width),以比特为单位,总线宽度愈大,传输性能就愈佳。总线的带宽(即单位时间内可以传输的总数据数)为:总线带宽 = 频率 x 宽度(Bytes/sec)。当总线空闲(其他器件都以高阻态形式连接在总线上)且一个器件要与目的器件通信时,发起通信的器件驱动总线,发出地址和数据。其他以高阻态形式连接在总线上的器件如果收到(或能够收到)与自己相符的地址信息后,即接收总线上的数据。发送器件完成通信,将总线让出(输出变为高阻态)。

总线按功能和规范可分为五大类型:
数据总线(Data Bus):在CPU与RAM之间来回传送需要处理或是需要储存的数据。
地址总线(Address Bus):用来指定在RAM(Random Access Memory)之中储存的数据的地址。
控制总线(Control Bus):将微处理器控制单元(Control Unit)的信号,传送到周边设备,一般常见的为 USB Bus和1394 Bus。
扩展总线(Expansion Bus):可连接扩展槽和电脑。
局部总线(Local Bus):取代更高速数据传输的扩展总线。
三类总线在微机系统中的地位和关系
三类总线在微机系统中的地位和关系
其中的数据总线DB(Data Bus)、地址总线AB(Address Bus)和控制总线CB(Control Bus),也统称为系统总线,即通常意义上所说的总线。
有的系统中,数据总线和地址总线是复用的,即总线在某些时刻出现的信号表示数据而另一些时刻表示地址;而有的系统是分开的。51系列单片机的地址总线和数据总线是复用的,而一般PC中的总线则是分开的。
“数据总线DB”用于传送数据信息。数据总线是双向三态形式的总线,即他既可以把CPU的数据传送到存储器或I/O接口等其它部件,也可以将其它部件的数据传送到CPU。数据总线的位数是微型计算机的一个重要指标,通常与微处理的字长相一致。例如Intel 8086微处理器字长16位,其数据总线宽度也是16位。需要指出的是,数据的含义是广义的,它可以是真正的数据,也可以是指令代码或状态信息,有时甚至是一个控制信息,因此,在实际工作中,数据总线上传送的并不一定仅仅是真正意义上的数据。
常见的数据总线为ISA、EISA、VESA、PCI等。
“地址总线AB”是专门用来传送地址的,由于地址只能从CPU传向外部存储器或I/O端口,所以地址总线总是单向三态的,这与数据总线不同。地址总线的位数决定了CPU可直接寻址的内存空间大小,比如8位微机的地址总线为16位,则其最大可寻址空间为2^16=64KB,16位微型机(x位处理器指一个时钟周期内微处理器能处理的位数(1 、0)多少,即字长大小)的地址总线为20位,其可寻址空间为2^20=1MB。一般来说,若地址总线为n位,则可寻址空间为2^n字节。
“控制总线CB”用来传送控制信号和时序信号。控制信号中,有的是微处理器送往存储器和I/O接口电路的,如读/写信号,片选信号、中断响应信号等;也有是其它部件反馈给CPU的,比如:中断申请信号、复位信号、总线请求信号、设备就绪信号等。因此,控制总线的传送方向由具体控制信号而定,(信息)一般是双向的,控制总线的位数要根据系统的实际控制需要而定。实际上控制总线的具体情况主要取决于CPU。
按照传输数据的方式划分,可以分为串行总线和并行总线。串行总线中,二进制数据逐位通过一根数据线发送到目的器件;并行总线的数据线通常超过2根。常见的串行总线有SPI、I2C、USB及RS232等。
按照时钟信号是否独立,可以分为同步总线和异步总线。同步总线的时钟信号独立于数据,而异步总线的时钟信号是从数据中提取出来的。SPI、I2C是同步串行总线,RS232采用异步串行总线。

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

为什么要制定总线标准?
便于机器的扩充和新设备的添加,有了总线标准,不同厂商可以按照同样的标准和规范生产各种不同功能的芯片、模块和整机,用户可以根据功能需求去选择不同厂家生产的、基于同种总线标准的模块和设备,甚至可以按照标准,自行设计功能特殊的专用模块和设备,以组成自己所需的应用系统。这样可使芯片级、模块级、设备级等各级别的产品都具有兼容性和互换性,以使整个计算机系统的可维护性和可扩充性得到充分保证。
总线标准的技术规范?
机械结构规范:模块尺寸、总线插头、总线接插件以及安装尺寸均有统一规定。
  功能规范:总线每条信号线(引脚的名称)、功能以及工作过程要有统一规定。
  电气规范:总线每条信号线的有效电平、动态转换时间、负载能力等。
哪种总线是标准的?
主板上的处理器-主存总线经常是特定的专用总线,而用于连接各种I/O模块的I/O总线和底板式总线则通常可在不同计算机中互用。实际上,底板式总线和I/O总线通常是标准总线,可被许多由不同公司制造的不同计算机使用。
总线标准-ISA
ISA(IndustrialStandardArchitecture)总线是IBM公司1984年为推出PC/AT机而建立的系统总线标准。所以也叫AT总线。
主要特点:
(1)支持64KI/O地址空间、16M主存地址空间的寻址,支持15级硬中断、7级DMA通道。
(2)是一种简单的多主控总线。除了CPU外,DMA控制器、DRAM刷新控制器和带处理器的智能接口控制卡都可成为总线主控设备。
(3)支持8种总线事务类型:存储器读、存储器写、I/O读、I/O写、中断响应、DMA响应、存储器刷新、总线仲裁。
它的时钟频率为8MHz,共有98根信号线。数据线和地址线分离,数据线宽度为16位,可以进行8位或16位数据的传送,所以最大数据传输率为16MB/s。
总线标准-EISA
EISA(ExtendedIndustrialStanderdArchitecture)总线 是一种在ISA总线基础上扩充的开放总线标准。 支持多总线主控和突发传输方式。
时钟频率为8.33MHz。共有198根信号线,在原ISA总线的98根线的基础上扩充了100根线,与原ISA总线完全兼容。具有分立的数据线和地址线。数据线宽度为32位,具有8位、16位、32位数据传输能力,所以最大数据传输率为33MB/s。地址线的宽度为32位,所以寻址能力达232。即:CPU或DMA控制器等这些主控设备能够对4G范围的主存地址空间进行访问。
总线标准-PCI
PCI(PeripheralComponentInterconnect)总线
是一种高性能的32位局部总线。它由Intel公司于1991年底提出,后来又联合IBM、DEC等100多家PC业界主要厂家,于1992年成立PCI集团,称为PCISIG,进行统筹和推广PCI标准的工作。
用于高速外设的I/O接口和主机相连。采用自身33MHz的总线频率,数据线宽度为32位,可扩充到64位,所以数据传输率可达132MB/s~264MB/s。
速度快、支持无限突发传输方式 、支持并发工作(PCI桥提供数据缓冲,并使总线独立于CPU) ,可在主板上和其他系统总线(如:ISA、EISA或MCA)相连接,系统中的高速设备挂接在PCI总线上,而低速设备仍然通过ISA、EISA等这些低速I/O总线支持。支持基于微处理器的配置,可用在单处理器系统中,也可用于多处理器系统。
AGP 总线
(Accelerated Graphics Port)
PCI 总线是独立于CPU 的系统总线,可将显示卡、声卡、网卡、硬盘控制器等高速的外围设备直接挂在CPU 总线上,打破了瓶颈,使得CPU 的性能得到充分的发挥。可惜的是,由于PCI 总线只有133MB/s 的带宽,对付声卡、网卡、视频卡等绝大多数输入/输出设备也许显得绰绰有余,但对于胃口越来越大的3D 显卡却力不从心,并成为了制约显示子系统和整机性能的瓶颈。因此,PCI 总线的补充——AGP 总线就应运而生了。
PCI-Express
在经历了长达10年的修修补补,PCI 总线已经无法满足电脑性能提升的要求,必须由带宽更大、适应性更广、发展潜力更深的新一代总线取而代之,这就是PCI-Express 总线。
相对于PCI总线来讲,PCI-Express总线能够提供极高的带宽,来满足系统的需求。PCI Express总线2.0标准的带宽如下表所示:

经历着这么三代半(AGP总线只是一种增强型的PCI总线)的发展,PC的外部总线终于发展到我们现在看到的PCI-E 2.0,提供了比以往总线大得多的带宽。至于今后总线发展的方向,相信会随着人们对带宽需要的不断增加,而很快来出现。

BIOS
BIOS是英文"Basic Input Output System"的缩略语,直译过来后中文名称就是"基本输入输出系统"。其实,它是一组固化到计算机内主板上一个ROM芯片上的程序,它保存着计算机最重要的基本输入输出的程序、系统设置信息、开机后自检程序和系统自启动程序。 其主要功能是为计算机提供最底层的、最直接的硬件设置和控制。
当今,此系统为一些病毒木马的目标,一旦此系统被木马破坏,其后果,不堪设想。

BIOS设置程序是储存在BIOS芯片中的,BIOS芯片是主板上一块长方形或正方形芯片,只有在开机时才可以进行设置。(一般在计算机启动时按F2或者Delete进入BIOS设置。一些特殊机型按F1、Esc、F12等)CMOS主要用于存储BIOS设置程序所设置的参数与数据,而BIOS设置程序主要对计算机的基本输入输出系统进行管理和设置,使系统运行在最好状态下,使用BIOS设置程序还可以排除系统故障或者诊断系统问题。有人认为既然BIOS是"程序",那它就应该是属于软件,感觉就像自己常用的Word或Excel。但也有很多人不这么认为,因为它与一般的软件还是有一些区别,而且它与硬件的联系也是相当地紧密。形象地说,BIOS应该是连接软件程序与硬件设备的一座"桥梁",负责解决硬件的即时要求。主板上的BIOS芯片或许是主板上唯一贴有标签的芯片,一般它是一块32针的双列直插式的集成电路,上面印有"BIOS"字样。从奔腾时代开始,现代的电脑主板都使用NORFlash来作为BIOS的存储芯片。除了容量比EEPROM更大外,主要是NORFlash具有写入功能,运行电脑通过软件的方式进行BIOS的更新,而无需额外的硬件支持(通常EEPROM的擦写需要不同的电压和条件),且写入速度快。

BIOS是一组设置硬件的电脑程序,保存在主板上的一块EPROM或EEPROM芯片中,里面装有系统的重要信息和设置系统参数的设置程序——BIOS Setup程序。而CMOS即:Complementary Metal Oxide Semiconductor——互补金属氧化物半导体,是主板上的一块可读写的RAM芯片,用来保存当前系统的硬件配置和用户对参数的设定,其内容可通过设置程序进行读写。CMOS芯片由主板上的钮扣电池供电,即使系统断电,参数也不会丢失。CMOS芯片只有保存数据的功能,而对CMOS中各项参数的修改要通过BIOS的设定程序来实现。BIOS与CMOS既相关又不同:BIOS中的系统设置程序是完成CMOS参数设置的手段;CMOS RAM既是BIOS设定系统参数的存放场所,又是 BIOS设定系统参数的结果。因此,完整的说法应该是“通过BIOS设置程序对CMOS参数进行设置”。由于 BIOS和CMOS都跟系统设置密初相关,所以在实际使用过程中造成了BIOS设置和CMOS设置的说法,其实指的都是同一回事,但BIOS与CMOS却是两个完全不同的概念,切勿混淆。

从功能上看,BIOS分为三个部分:
自检及初始化
这部分负责启动电脑,具体有三个部分:
第一个部分是用于电脑刚接通电源时对硬件部分的检测,也叫做加电自检(Power On Self Test,简称POST),功能是检查电脑是否良好,通常完整的POST自检将包括对CPU,640K基本内存,1M以上的扩展内存,ROM,主板,CMOS存储器,串并口,显示卡,软硬盘子系统及键盘进行测试,一旦在自检中发现问题,系统将给出提示信息或鸣笛警告。自检中如发现有错误,将按两种情况处理:对于严重故障(致命性故障)则停机,此时由于各种初始化操作还没完成,不能给出任何提示或信号;对于非严重故障则给出提示或声音报警信号,等待用户处理。
第二个部分是初始化,包括创建中断向量、设置寄存器、对一些外部设备进行初始化和检测等,其中很重要的一部分是BIOS设置,主要是对硬件设置的一些参数,当电脑启动时会读取这些参数,并和实际硬件设置进行比较,如果不符合,会影响系统的启动。
第三个部分是引导程序,功能是引导DOS或其他操作系统。BIOS先从软盘或硬盘的开始扇区读取引导记录,如果没有找到,则会在显示器上显示没有引导设备,如果找到引导记录会把电脑的控制权转给引导记录,由引导记录把操作系统装入电脑,在电脑启动成功后,BIOS的这部分任务就完成了。
程序服务处理

程序服务处理程序主要是为应用程序和操作系统服务,这些服务主要与输入输出设备有关,例如读磁盘、文件输出到打印机等。为了完成这些操作,BIOS必须直接与计算机的I/O设备打交道,它通过端口发出命令,向各种外部设备传送数据以及从它们那儿接收数据,使程序能够脱离具体的硬件操作。
硬件中断处理

硬件中断处理则分别处理PC机硬件的需求,BIOS的服务功能是通过调用中断服务程序来实现的,这些服务分为很多组,每组有一个专门的中断。例如视频服务,中断号为10H;屏幕打印,中断号为05H;磁盘及串行口服务,中断14H等。每一组又根据具体功能细分为不同的服务号。应用程序需要使用哪些外设、进行什么操作只需要在程序中用相应的指令说明即可,无需直接控制。
(二)(三)两部分功能虽然是两个独立的内容,但在使用上密切相关。这两部分分别为软件和硬件服务,组合到一起,使计算机系统正常运行。
另外需注意:BIOS设置不当会直接损坏计算机的硬件,甚至烧毁主板,建议不熟悉者慎重修改设置。用户可以通过设置BIOS来改变各种不同的设置,比如onboard显卡的内存大小。用户手上所有的操作系统都是由BIOS转交给引导扇区,再由引导扇区转到各分区激活相应的操作系统。

硬盘

硬盘(港台称之为硬碟,英文名:Hard Disk Drive 简称HDD 全名 温彻斯特式硬盘)是电脑主要的存储媒介之一,由一个或者多个铝制或者玻璃制的碟片组成。碟片外覆盖有铁磁性材料。硬盘有固态硬盘(SSD 盘,新式硬盘)、机械硬盘(HDD 传统硬盘)、混合硬盘(HHD 一块基于传统机械硬盘诞生出来的新硬盘)。SSD采用闪存颗粒来存储,HDD采用磁性碟片来存储,混合硬盘(HHD: Hybrid Hard Disk)是把磁性硬盘和闪存集成到一起的一种硬盘。绝大多数硬盘都是固定硬盘,被永久性地密封固定在硬盘驱动器中。

基本参数

容量
作为计算机系统的数据存储器,容量是硬盘最主要的参数。
硬盘的容量以兆字节(MB/MiB)、千兆字节(GB/GiB)或百万兆字节(TB/TiB)为单位,而常见的换算式为:1TB=1024GB,1GB=1024MB而1MB=1024KB。但硬盘厂商通常使用的是GB,也就是1G=1000MB,而Windows系统,就依旧以“GB”字样来表示“GiB”单位(1024换算的),因此我们在BIOS中或在格式化硬盘时看到的容量会比厂家的标称值要小。
硬盘的容量指标还包括硬盘的单碟容量。所谓单碟容量是指硬盘单片盘片的容量,单碟容量越大,单位成本越低,平均访问时间也越短。
一般情况下硬盘容量越大,单位字节的价格就越便宜,但是超出主流容量的硬盘略微例外。
在我们买硬盘的时候说是500G的,但实际容量都比500G小的。因为厂家是按1MB=1000KB来换算的,所以我们买新硬盘,比买时候实际用量要小点的。

转速
转速(Rotational Speed 或Spindle speed),是硬盘内电机主轴的旋转速度,也就是硬盘盘片在一分钟内所能完成的最大转数。转速的快慢是标示硬盘档次的重要参数之一,它是决定硬盘内部传输率的关键因素之一,在很大程度上直接影响到硬盘的速度。硬盘的转速越快,硬盘寻找文件的速度也就越快,相对的硬盘的传输速度也就得到了提高。硬盘转速以每分钟多少转来表示,单位表示为RPM,RPM是Revolutions Per minute的缩写,是转/每分钟。RPM值越大,内部传输率就越快,访问时间就越短,硬盘的整体性能也就越好。
硬盘的主轴马达带动盘片高速旋转,产生浮力使磁头飘浮在盘片上方。要将所要存取资料的扇区带到磁头下方,转速越快,则等待时间也就越短。因此转速在很大程度上决定了硬盘的速度。
家用的普通硬盘的转速一般有5400rpm、7200rpm几种高转速硬盘也是台式机用户的首选;而对于笔记本用户则是4200rpm、5400rpm为主,虽然已经有公司发布了10000rpm的笔记本硬盘,但在市场中还较为少见;服务器用户对硬盘性能要求最高,服务器中使用的SCSI硬盘转速基本都采用10000rpm,甚至还有15000rpm的,性能要超出家用产品很多。较高的转速可缩短硬盘的平均寻道时间和实际读写时间,但随着硬盘转速的不断提高也带来了温度升高、电机主轴磨损加大、工作噪音增大等负面影响。

平均访问时间
平均访问时间(Average Access Time)是指磁头从起始位置到到达目标磁道位置,并且从目标磁道上找到要读写的数据扇区所需的时间。
平均访问时间体现了硬盘的读写速度,它包括了硬盘的寻道时间和等待时间,即:平均访问时间=平均寻道时间+平均等待时间。
硬盘的平均寻道时间(Average Seek Time)是指硬盘的磁头移动到盘面指定磁道所需的时间。这个时间当然越小越好,硬盘的平均寻道时间通常在8ms到12ms之间,而SCSI硬盘则应小于或等于8ms。
硬盘的等待时间,又叫潜伏期(Latency),是指磁头已处于要访问的磁道,等待所要访问的扇区旋转至磁头下方的时间。平均等待时间为盘片旋转一周所需的时间的一半,一般应在4ms以下。

传输速率
传输速率(Data Transfer Rate)硬盘的数据传输率是指硬盘读写数据的速度,单位为兆字节每秒(MB/s)。硬盘数据传输率又包括了内部数据传输率和外部数据传输率。
内部传输率(Internal Transfer Rate) 也称为持续传输率(Sustained Transfer Rate),它反映了硬盘缓冲区未用时的性能。内部传输率主要依赖于硬盘的旋转速度。
外部传输率(External Transfer Rate)也称为突发数据传输率(Burst Data Transfer Rate)或接口传输率,它标称的是系统总线与硬盘缓冲区之间的数据传输率,外部数据传输率与硬盘接口类型和硬盘缓存的大小有关。
Fast ATA接口硬盘的最大外部传输率为16.6MB/s,而Ultra ATA接口的硬盘则达到33.3MB/s。2012年12月,两80后研制出传输速度每秒1.5GB的固态硬盘。

缓存
缓存(Cache memory)是硬盘控制器上的一块内存芯片,具有极快的存取速度,它是硬盘内部存储和外界接口之间的缓冲器。由于硬盘的内部数据传输速度和外界介面传输速度不同,缓存在其中起到一个缓冲的作用。缓存的大小与速度是直接关系到硬盘的传输速度的重要因素,能够大幅度地提高硬盘整体性能。当硬盘存取零碎数据时需要不断地在硬盘与内存之间交换数据,有大缓存,则可以将那些零碎数据暂存在缓存中,减小外系统的负荷,也提高了数据的传输速度

接口
ATA
ATA 全称 Advanced Technology Attachment,是用传统的40-pin 并口数据线连接主板与硬盘的,外部接口速度最大为133MB/s,因为并口线的抗干扰性太差,且排线占空间,不利计算机散热,将逐渐被SATA 所取代。
IDE
全称 Integrated Drive Electronics,即“电子集成驱动器”,俗称PATA并口。
2001年,由Intel、APT、Dell、IBM、希捷、迈拓这几大厂商组成的Serial ATA委员会正式确立了Serial ATA 1.0规范,2002年,虽然串行ATA的相关设备还未正式上市,但Serial ATA委员会已抢先确立了Serial ATA 2.0规范。Serial ATA采用串行连接方式,串行ATA总线使用嵌入式时钟信号,具备了更强的纠错能力,与以往相比其最大的区别在于能对传输指令(不仅仅是数据)进行检查如果发现错误会自动矫正。
SATA Ⅱ
SATA Ⅱ是芯片巨头Intel英特尔与硬盘巨头Seagate希捷在SATA的基础上发展起来的,其主要特征是外部传输率从SATA的150MB/s进一步提高到了300MB/s,此外还包括NCQ(Native Command Queuing,原生命令队列)、端口多路器(Port Multiplier)、交错启动(Staggered Spin-up)等一系列的技术特征。但是并非所有的SATA硬盘都可以使用NCQ技术,除了硬盘本身要支持NCQ之外,也要求主板芯片组的SATA控制器支持NCQ。
SATA Ⅲ
正式名称为“SATARevision3.0”,是串行ATA国际组织(SATA-IO)在2009年5月份发布的新版规范,主要是传输速度翻番达到6Gbps,同时向下兼容旧版规范“SATARevision2.6”(也就是现在俗称的SATA3Gbps),接口、数据线都没有变动。SATA3.0接口技术标准是2007上半年英特尔公司提出的,由英特尔公司的存储产品架构设计部技术总监Knut Grimsrud负责。Knut Grimsrud表示,SATA3.0的传输速率将达到6Gbps,将在SATA2.0的基础上增加1倍。
SCSI
SCSI的英文全称为“Small Computer System Interface”(小型计算机系统接口),是同IDE(ATA)完全不同的接口,IDE接口是普通PC的标准接口,而SCSI并不是专门为硬盘设计的接口,是一种广泛应用于小型机上的高速数据传输技术。SCSI接口具有应用范围广、多任务、带宽大、CPU占用率低,以及热插拔等优点,但较高的价格使得它很难如IDE硬盘般普及,因此SCSI硬盘主要应用于中、高端服务器和高档工作站中。
光纤通道
光纤通道的英文拼写是Fibre Channel,和SCSI接口一样光纤通道最初也不是为硬盘设计开发的接口技术,是专门为网络系统设计的,但随着存储系统对速度的需求,才逐渐应用到硬盘系统中。光纤通道硬盘是为提高多硬盘存储系统的速度和灵活性才开发的,它的出现大大提高了多硬盘系统的通信速度。光纤通道的主要特性有:热插拔性、高速带宽、远程连接、连接设备数量大等。
光纤通道是为在像服务器这样的多硬盘系统环境而设计的,能满足高端工作站、服务器、海量存储子网络、外设间通过集线器、交换机和点对点连接进行双向、串行数据通讯等系统对高数据传输率的要求。

物理结构
磁头
磁头是硬盘中最昂贵的部件,也是硬盘技术中最重要和最关键的一环。传统的磁头是读写合一的电磁感应式磁头,但是,硬盘的读、写却是两种截然不同的操作,为此,这种二合一磁头在设计时必须要同时兼顾到读/写两种特性,从而造成了硬盘设计上的局限。而MR磁头(Magnetoresistive heads),即磁阻磁头,采用的是分离式的磁头结构:写入磁头仍采用传统的磁感应磁头(MR磁头不能进行写操作),读取磁头则采用新型的MR磁头,即所谓的感应写、磁阻读。这样,在设计时就可以针对两者的不同特性分别进行优化,以得到最好的读/写性能。另外,MR磁头是通过阻值变化而不是电流变化去感应信号幅度,因而对信号变化相当敏感,读取数据的准确性也相应提高。而且由于读取的信号幅度与磁道宽度无关,故磁道可以做得很窄,从而提高了盘片密度,达到每平方英寸200MB,而使用传统的磁头只能达到每平方英寸20MB,这也是MR磁头被广泛应用的最主要原因。MR磁头已得到广泛应用,而采用多层结构和磁阻效应更好的材料制作的GMR磁头(Giant Magnetoresistive heads)也逐渐开始普及。
磁道
当磁盘旋转时,磁头若保持在一个位置上,则每个磁头都会在磁盘表面划出一个圆形轨迹,这些圆形轨迹就叫做磁道。这些磁道用肉眼是根本看不到的,因为它们仅是盘面上以特殊方式磁化了的一些磁化区,磁盘上的信息便是沿着这样的轨道存放的。相邻磁道之间并不是紧挨着的,这是因为磁化单元相隔太近时磁性会相互产生影响,同时也为磁头的读写带来困难。一张1.44MB的3.5英寸软盘,一面有80个磁道,而硬盘上的磁道密度则远远大于此值,通常一面有成千上万个磁道。磁道的磁化方式一般由磁头迅速切换正负极改变磁道所代表的0和1。
扇区
磁盘上的每个磁道被等分为若干个弧段,这些弧段便是磁盘的扇区,每个扇区可以存放512个字节的信息,磁盘驱动器在向磁盘读取和写入数据时,要以扇区为单位。1.44MB3.5英寸的软盘,每个磁道分为18个扇区。
柱面
硬盘通常由重叠的一组盘片构成,每个盘面都被划分为数目相等的磁道,并从外缘的“0”开始编号,具有相同编号的磁道形成一个圆柱,称之为磁盘的柱面。磁盘的柱面数与一个盘单面上的磁道数是相等的。无论是双盘面还是单盘面,由于每个盘面都只有自己独一无二的磁头,因此,盘面数等于总的磁头数。所谓硬盘的CHS,即Cylinder(柱面)、Head(磁头)、Sector(扇区),只要知道了硬盘的CHS的数目,即可确定硬盘的容量,硬盘的容量=柱面数*磁头数*扇区数*512B。
扩展分区
由于主分区表中只能分四个分区,无法满足需求,因此设计了一种扩展分区格式。基本上说,扩展分区的信息是以链表形式存放的,但也有一些特别的地方。首先,主分区表中要有一个基本扩展分区项,所有扩展分区都隶属于它,也就是说其他所有扩展分区的空间都必须包括在这个基本扩展分区中。对于DOS / Windows 来说,扩展分区的类型为0x05。除基本扩展分区以外的其他所有扩展分区则以链表的形式级联存放, 后一个扩展分区的数据项记录在前一个扩展分区的分区表中,但两个扩展分区的空间并不重叠。
扩展分区类似于一个完整的硬盘,必须进一步分区才能使用。但每个扩展分区中只能存在一个其他分区。此分区在 DOS/Windows环境中即为逻辑盘。因此每一个扩展分区的分区表(同样存储在扩展分区的第一个扇区中)中最多只能有两个分区数据项(包括下一个扩展分区的数据项)。

固态硬盘
由于传统机械硬盘在工作原理上的限制,导致在性能方面的提升很容易就会遇到瓶颈。为了改变硬盘性能成为整机瓶颈的这个现状,固态硬盘(SSD)就应运而生了。1984年,日本东芝公司发明了闪存这种全新的存储介质,而Intel则在1988年将闪存这种新技术包装成商品推向市场,在1989年以固态硬盘的形式出现在我们面前。
那么,什么是固态硬盘呢?
  固态硬盘(Solid State Disk或Solid State Drive),也称作电子硬盘或者固态电子盘,是由控制单元和固态存储单元(DRAM或FLASH芯片)组成的硬盘。目前主要有两类:
基于闪存的固态硬盘
  1.基于闪存的固态硬盘:采用FLASH芯片作为存储介质,这也是我们通常所说的固态硬盘。它的外观可以被制作成多种模样,例如:笔记本硬盘、微硬盘、存储卡、优盘等样式。这种固态硬盘最大的优点就是可以移动,而且数据保护不受电源控制,能适应于各种环境,但是使用寿命不高,适合于个人用户使用。

基于DRAM的固态硬盘
  2.基于DRAM的固态硬盘:采用DRAM作为存储介质,目前应用范围比较窄。它仿效传统硬盘的设计、可被绝大部分操作系统的文件系统工具进行卷设置和管理,并提供工业标准的PCI和FC接口用于连接主机或者服务器。它是一种高性能的存储器,而且使用寿命很长,美中不足的是需要独立电源来保护数据安全。由于目前市面上较少见到该类固态硬盘,所以接下来本文将着重介绍基于闪存的固态硬盘。

固态硬盘内部结构解析:
  目前固态硬盘产品有3.5英寸,2.5英寸,1.8英寸等多种类型,市面上能见到的最大容量为512GB,接口规格与传统硬盘一致。固态硬盘的内部构造十分简单,通过工具可以很轻松的拆开外壳固定螺丝看到固态硬盘内主体其实就是一块PCB板,而这块PCB板上最基本的配件就是控制芯片、缓存芯片和用于存储数据的闪存芯片。

主控芯片与缓存芯片

  目前市面上比较常见的固态硬盘有Indilinx、SandForce、JMicron、Marvell、Samsung以及Intel等多种主控芯片。主控芯片是固态硬盘的大脑,其作用一是合理调配数据在各个闪存芯片上的负荷,二则是承担了整个数据中转,连接闪存芯片和外部SATA接口。不同的主控之间能力相差非常大,在数据处理能力,算法,对闪存芯片的读取写入控制上会有非常大的不同,直接会导致固态硬盘产品在性能上差距高达数十倍。

  主控芯片旁边是缓存芯片,固态硬盘和传统硬盘一样需要高速的缓存芯片辅助主控芯片进行数据处理。这里需要注意的是,目前有一些廉价固态硬盘方案为了节省成本,省去了这块缓存芯片,这样对于使用时的性能会有一定的影响。

闪存芯片

  除了主控芯片和缓存芯片以外,PCB板上其余的大部分位置都是NAND Flash闪存芯片了。NAND Flash闪存芯片又分为SLC(单层单元)和MLC(多层单元)NAND闪存:

  1.SLC全称是单层式储存 (Single Level Cell),因为结构简单,在写入数据时电压变化的区间小,所以寿命较长,传统的SLC NAND闪存可以经受10万次的读写。而且因为一组电压即可驱动,所以其速度表现更好,目前很多高端固态硬盘都是都采用该类型的Flash闪存芯片。

  2.MLC全称是多层式储存(Multi Leveled Cell),它采用较高的电压驱动,通过不同级别的电压在一个块中记录两组位信息,这样就可以将原本SLC的记录密度理论提升一倍。作为目前在固态硬盘中应用最为广泛的MLC NAND闪存,其最大的特点就是以更高的存储密度换取更低的存储成本,从而可以获得进入更多终端领域的契机。不过,MLC的缺点也很明显,其写入寿命较短,读写方面的能力也比SLC低,官方给出的可擦写次数仅为1万次。

固态硬盘与传统硬盘优劣势对比
固态硬盘相比传统机械硬盘有以下优势:

  1. 存取速度方面:SSD固态硬盘采用闪存作为存储介质,读取速度相对机械硬盘更快,而且寻道时间几乎为0,这样的特质在作为系统盘时候,可以明显加快操作系统启动速度和软件启动速度。
  2. 抗震性能方面:SSD固态硬盘由于完全没有机械结构,所以不怎么怕震动和冲击,不用担心因为震动造成无可避免的数据损失。
  3. 发热功耗方面:SSD固态硬盘不同于传统硬盘,不存在盘片的高速旋转,所以发热也明显低于机械硬盘,而且FLASH芯片的功耗极低,这对于笔记本用户来说,这意味着电池续航时间的增加。
  4. 使用噪音方面:SSD固态硬盘没有盘体机构,不存在磁头臂寻道的声音和高速旋转时候的噪音,所以SSD工作时候完全不会产生噪音。

  不过,虽然固态硬盘性能非常诱人、优点也极多,但价格、容量以及有限的数据读取擦写次数限制等缺点也同样不容小视:
  1. 写入速度问题: 写入速度是目前大多数SSD固态硬盘产品的瓶颈,尤其是对于小文件的写入速度还远远不足,这和闪存芯片本身的特质有关。
  2. 使用寿命问题:闪存芯片是有寿命的,其平均工作寿命要远远低于机械硬盘,这给固态硬盘作为存储介质带来了一定的风险。
  3. 性价比问题:目前固态硬盘的价格还是较为昂贵,折合到每G单价要几十倍于传统硬盘,并不是普通消费者能够承受的。

随着成本的降低,相信固态硬盘未来会成为个人计算设备的存储主流。

Flash闪存

除了从固态硬盘到种类繁多的u盘/存储卡(sd卡/cf卡/tf卡),全部使用Flash闪存。

闪存(Flash Memory)是一种长寿命的非易失性(在断电情况下仍能保持所存储的数据信息)的存储器,数据删除不是以单个的字节为单位而是以固定的区块为单位(注意:NOR Flash 为字节存储。),区块大小一般为256KB到20MB。闪存是电子可擦除只读存储器(EEPROM)的变种,闪存与EEPROM不同的是,EEPROM能在字节水平上进行删除和重写而不是整个芯片擦写,而闪存的大部分芯片需要块擦除。由于其断电时仍能保存数据,闪存通常被用来保存设置信息,如在电脑的BIOS(基本程序)、PDA(个人数字助理)、数码相机中保存资料等。

NOR型与NAND型闪存的区别很大,打个比方说,NOR型闪存更像内存,有独立的地址线和数据线,但价格比较贵,容量比较小;而NAND型更像硬盘,地址线和数据线是共用的I/O线,类似硬盘的所有信息都通过一条硬盘线传送,而且NAND型与NOR型闪存相比,成本要低一些,而容量大得多。因此,NOR型闪存比较适合频繁随机读写的场合,通常用于存储程序代码并直接在闪存内运行,手机就是使用NOR型闪存的大户,所以手机的“内存”容量通常不大;NAND型闪存主要用来存储资料,我们常用的闪存产品,如闪存盘、数码存储卡都是用NAND型闪存。

闪存的基本单元电路,与EEPROM类似,也是由双层浮空栅MOS管组成。但是第一层栅介质很薄,作为隧道氧化层。写入方法与EEPROM相同,在第二级浮空栅加以正电压,使电子进入第一级浮空栅。读出方法与EPROM相同。擦除方法是在源极加正电压利用第一级浮空栅与源极之间的隧道效应,把注入至浮空栅的负电荷吸引到源极。由于利用源极加正电压擦除,因此各单元的源极联在一起,这样,快擦存储器不能按字节擦除,而是全片或分块擦除。 到后来,随着半导体技术的改进,闪存也实现了单晶体管(1T)的设计,主要就是在原有的晶体管上加入了浮动栅和选择栅,在源极和漏极之间电流单向传导的半导体上形成贮存电子的浮动棚。浮动栅包裹着一层硅氧化膜绝缘体。它的上面是在源极和漏极之间控制传导电流的选择/控制栅。数据是0或1取决于在硅底板上形成的浮动栅中是否有电子。有电子为0,无电子为1。
闪存就如同其名字一样,写入前删除数据进行初始化。具体说就是从所有浮动栅中导出电子。即将有所数据归“1”。写入时只有数据为0时才进行写入,数据为1时则什么也不做。写入0时,向栅电极和漏极施加高电压,增加在源极和漏极之间传导的电子能量。这样一来,电子就会突破氧化膜绝缘体,进入浮动栅。读取数据时,向栅电极施加一定的电压,电流大为1,电流小则定为0。浮动栅没有电子的状态(数据为1)下,在栅电极施加电压的状态时向漏极施加电压,源极和漏极之间由于大量电子的移动,就会产生电流。而在浮动栅有电子的状态(数据为0)下,沟道中传导的电子就会减少。因为施加在栅电极的电压被浮动栅电子吸收后,很难对沟道产生影响。

这里我们还需要端正一个概念,那就是闪存的速度其实很有限,它本身操作速度、频率就比内存低得多,而且NAND型闪存类似硬盘的操作方式效率也比内存的直接访问方式慢得多。因此,不要以为闪存盘的性能瓶颈是在接口,甚至想当然地认为闪存盘采用USB2.0接口之后会获得巨大的性能提升。
前面提到NAND型闪存的操作方式效率低,这和它的架构设计和接口设计有关,它操作起来确实挺像硬盘(其实NAND型闪存在设计之初确实考虑了与硬盘的兼容性),它的性能特点也很像硬盘:小数据块操作速度很慢,而大数据块速度就很快,这种差异远比其他存储介质大的多。这种性能特点非常值得我们留意。

影响闪存读写性能的决定因素:

页数量
前面已经提到,越大容量闪存的页越多、页越大,寻址时间越长。但这个时间的延长不是线性关系,而是一个一个的台阶变化的。譬如128、256Mb的芯片需要3个周期传送地址信号,512Mb、1Gb的需要4个周期,而2、4Gb的需要5个周期。

页容量
每一页的容量决定了一次可以传输的数据量,因此大容量的页有更好的性能。前面提到大容量闪存(4Gb)提高了页的容量,从512字节提高到2KB。页容量的提高不但易于提高容量,更可以提高传输性能。我们可以举例子说明。以三星K9K1G08U0M和K9K4G08U0M为例,前者为1Gb,512字节页容量,随机读(稳定)时间12μs,写时间为200μs;后者为4Gb,2KB页容量,随机读(稳定)时间25μs,写时间为300μs。假设它们工作在20MHz。

块容量
块是擦除操作的基本单位,由于每个块的擦除时间几乎相同(擦除操作一般需要2ms,而之前若干周期的命令和地址信息占用的时间可以忽略不计),块的容量将直接决定擦除性能。大容量NAND型闪存的页容量提高,而每个块的页数量也有所提高,一般4Gb芯片的块容量为2KB×64个页=128KB,1Gb芯片的为512字节×32个页=16KB。可以看出,在相同时间之内,前者的擦速度为后者8倍!

I/O位宽
以往NAND型闪存的数据线一般为8条,不过从256Mb产品开始,就有16条数据线的产品出现了。但由于控制器等方面的原因,x16芯片实际应用的相对比较少,但将来数量上还是会呈上升趋势的。虽然x16的芯片在传送数据和地址信息时仍采用8位一组,占用的周期也不变,但传送数据时就以16位为一组,带宽增加一倍。K9K4G16U0M就是典型的64M×16芯片,它每页仍为2KB,但结构为(1K+32)×16bit。
模仿上面的计算,我们得到如下。K9K4G16U0M读一个页需要:6个命令、寻址周期×50ns+25μs+(1K+32)×50ns=78.1μs。K9K4G16U0M实际读传输率:2KB字节÷78.1μs=26.2MB/s。K9K4G16U0M写一个页需要:6个命令、寻址周期×50ns+(1K+32)×50ns+300μs=353.1μs。K9K4G16U0M实际写传输率:2KB字节÷353.1μs=5.8MB/s
可以看到,相同容量的芯片,将数据线增加到16条后,读性能提高近70%,写性能也提高16%。

频率
工作频率的影响很容易理解。NAND型闪存的工作频率在20~33MHz,频率越高性能越好。前面以K9K4G08U0M为例时,我们假设频率为20MHz,如果我们将频率提高一倍,达到40MHz,则K9K4G08U0M读一个页需要:6个命令、寻址周期×25ns+25μs+(2K+64)×25ns=78μs。K9K4G08U0M实际读传输率:2KB字节÷78μs=26.3MB/s。可以看到,如果K9K4G08U0M的工作频率从20MHz提高到40MHz,读性能可以提高近70%!当然,上面的例子只是为了方便计算而已。在三星实际的产品线中,可工作在较高频率下的应是K9XXG08UXM,而不是K9XXG08U0M,前者的频率可达33MHz。

制造工艺
制造工艺可以影响晶体管的密度,也对一些操作的时间有影响。譬如前面提到的写稳定和读稳定时间,它们在我们的计算当中占去了时间的重要部分,尤其是写入时。如果能够降低这些时间,就可以进一步提高性能。90nm的制造工艺能够改进性能吗?答案恐怕是否!实际情况是,随着存储密度的提高,需要的读、写稳定时间是呈现上升趋势的。前面的计算所举的例子中就体现了这种趋势,否则4Gb芯片的性能提升更加明显。
综合来看,大容量的NAND型闪存芯片虽然寻址、操作时间会略长,但随着页容量的提高,有效传输率还是会大一些,大容量的芯片符合市场对容量、成本和性能的需求趋势。而增加数据线和提高频率,则是提高性能的最有效途径,但由于命令、地址信息占用操作周期,以及一些固定操作时间(如信号稳定时间等)等工艺、物理因素的影响,它们不会带来同比的性能提升。
1Page=(2K+64)Bytes;1Block=(2K+64)B×64Pages=(128K+4K)Bytes;1Device=(2K+64)B×64Pages×4096Blocks=4224Mbits
其中:A0~11对页内进行寻址,可以被理解为“列地址”。
A12~29对页进行寻址,可以被理解为“行地址”。为了方便,“列地址”和“行地址”分为两组传输,而不是将它们直接组合起来一个大组。因此每组在最后一个周期会有若干数据线无信息传输。没有利用的数据线保持低电平。NAND型闪存所谓的“行地址”和“列地址”不是我们在DRAM、SRAM中所熟悉的定义,只是一种相对方便的表达方式而已。为了便于理解,我们可以将上面三维的NAND型闪存芯片架构图在垂直方向做一个剖面,在这个剖面中套用二维的“行”、“列”概念就比较直观了。


内存

内存是计算机中重要的部件之一,它是与CPU进行沟通的桥梁。计算机中所有程序的运行都是在内存中进行的,因此内存的性能对计算机的影响非常大。内存(Memory)也被称为内存储器,其作用是用于暂时存放CPU中的运算数据,以及与硬盘等外部存储器交换的数据。只要计算机在运行中,CPU就会把需要运算的数据调到内存中进行运算,当运算完成后CPU再将结果传送出来,内存的运行也决定了计算机的稳定运行。 内存是由内存芯片、电路板、金手指等部分组成的。

在计算机的组成结构中,有一个很重要的部分,就是存储器。存储器是用来存储程序和数据的部件,对于计算机来说,有了存储器,才有记忆功能,才能保证正常工作。存储器的种类很多,按其用途可分为主存储器和辅助存储器,主存储器又称内存储器(简称内存,港台称之为记忆体)。内存又称主存,是CPU能直接寻址的存储空间,由半导体器件制成。内存的特点是存取速率快。内存是电脑中的主要部件,它是相对于外存而言的。我们平常使用的程序,如Windows操作系统、打字软件、游戏软件等,一般都是安装在硬盘等外存上的,但仅此是不能使用其功能的,必须把它们调入内存中运行,才能真正使用其功能,我们平时输入一段文字,或玩一个游戏,其实都是在内存中进行的。就好比在一个书房里,存放书籍的书架和书柜相当于电脑的外存,而我们工作的办公桌就是内存。通常我们把要永久保存的、大量的数据存储在外存上,而把一些临时的或少量的数据和程序放在内存上,当然内存的好坏会直接影响电脑的运行速度。

内存一般采用半导体存储单元,包括随机存储器(RAM),只读存储器(ROM),以及高速缓存(CACHE)。
●只读存储器(ROM)
ROM表示只读存储器(Read Only Memory),在制造ROM的时候,信息(数据或程序)就被存入并永久保存。这些信息只能读出,一般不能写入,即使机器停电,这些数据也不会丢失。ROM一般用于存放计算机的基本程序和数据,如BIOS ROM。其物理外形一般是双列直插式(DIP)的集成块。
●随机存储器(RAM)
随机存储器(Random Access Memory)表示既可以从中读取数据,也可以写入数据。当机器电源关闭时,存于其中的数据就会丢失。我们通常购买或升级的内存条就是随机存储器,内存条(SIMM)就是将RAM集成块集中在一起的一小块电路板,它插在计算机中的内存插槽上,以减少RAM集成块占用的空间。目前市场上常见的内存条有1G/条,2G/条,4G/条等。
现代的随机存取存储器依赖电容器存储数据。电容器充满电后代表1(二进制),未充电的代表0。由于电容器或多或少有漏电的情形,若不作特别处理,数据会渐渐随时间流失。刷新是指定期读取电容器的状态,然后按照原来的状态重新为电容器充电,弥补流失了的电荷。需要刷新正好解释了随机存取存储器的易失性。
根据存储单元的工作原理不同, RAM分为静态RAM和动态RAM。
静态随机存储器(SRAM)
        静态存储单元是在静态触发器的基础上附加门控管而构成的。因此,它是靠触发器的自保功能存储数据的。
动态随机存储器(DRAM)
  动态RAM的存储矩阵由动态MOS存储单元组成。动态MOS存储单元利用MOS管的栅极电容来存储信息,但由于栅极电容的容量很小,而漏电流又不可能绝对等于0,所以电荷保存的时间有限。为了避免存储信息的丢失,必须定时地给电容补充漏掉的电荷。通常把这种操作称为“刷新”或“再生”,因此DRAM内部要有刷新控制电路,其操作也比静态RAM复杂。尽管如此,由于DRAM存储单元的结构能做得非常简单,所用元件少,功耗低,已成为大容量RAM的主流产品。
●高速缓冲存储器(Cache)
Cache也是我们经常遇到的概念,也就是平常看到的一级缓存(L1 Cache)、二级缓存(L2 Cache)、三级缓存(L3 Cache)这些数据,它位于CPU与内存之间,是一个读写速度比内存更快的存储器。当CPU向内存中写入或读出数据时,这个数据也被存储进高速缓冲存储器中。当CPU再次需要这些数据时,CPU就从高速缓冲存储器读取数据,而不是访问较慢的内存,当然,如需要的数据在Cache中没有,CPU会再去读取内存中的数据。Cache一般位于cpu中,现代的内存条中也带有高速缓存。

物理存储器和地址空间
物理存储器和存储地址空间是两个不同的概念。但是由于这两者有十分密切的关系,而且两者都用B、KB、MB、GB来度量其容量大小,因此容易产生认识上的混淆。初学者弄清这两个不同的概念,有助于进一步认识内存储器和用好内存储器。
物理存储器是指实际存在的具体存储器芯片。如主板上装插的内存条和装载有系统的BIOS的ROM芯片,显示卡上的显示RAM芯片和装载显示BIOS的ROM芯片,以及各种适配卡上的RAM芯片和ROM芯片都是物理存储器。
存储地址空间是指对存储器编码(编码地址)的范围。所谓编码就是对每一个物理存储单元(一个字节)分配一个号码,通常叫作“编址”。分配一个号码给一个存储单元的目的是为了便于找到它,完成数据的读写,这就是所谓的“寻址”(所以,有人也把地址空间称为寻址空间)。
地址空间的大小和物理存储器的大小并不一定相等。举个例子来说明这个问题:某层楼共有17个房间,其编号为801~817。这17个房间是物理的,而其地址空间采用了三位编码,其范围是800~899共100个地址,可见地址空间是大于实际房间数量的。
对于386以上档次的微机,其地址总线为32位,因此地址空间可达2的32次方,即4GB。(虽然如此,但是我们一般使用的一些操作系统例如windows xp、却最多只能识别或者使用3.25G的内存,64位的操作系统能识别并使用4G和4G以上的的内存,
内存容量同硬盘、软盘等存储器容量单位都是相同的,它们的基本单位都是字节(B),并且:
1024B=1KB=1024字节=2^10字节(^代表次方)
1024KB=1MB=1048576字节=2^20字节
1024MB=1GB=1073741824字节=2^30字节
1024GB=1TB=1099511627776字节=2^40字节
1024TB=1PB=1125899906842624字节=2^50字节
1024PB=1EB=115 292150 4606846976字节=2^60字节
1024EB=1ZB=1180591620717411303424字节=2^70字节
1024ZB=1YB=1208925819614629174706176字节=2^80字节
好了,现在可以解释为什么会产生诸如:常规内存、保留内存、上位内存、高端内存、扩充内存和扩展内存等不同内存类型。
这里需要明确的是,我们讨论的不同内存的概念是建立在寻址空间上的。IBM推出的第一台PC机采用的CPU是8088芯片,它只有20根地址线,也就是说,它的地址空间是1MB。
PC机的设计师将1MB中的低端640KB用作RAM,供DOS及应用程序使用,高端的384KB则保留给ROM、视频适配卡等系统使用。从此,这个界限便被确定了下来并且沿用至今。低端的640KB就被称为常规内存即PC机的基本RAM区。保留内存中的低128KB是显示缓冲区,高64KB是系统BIOS(基本输入/输出系统)空间,其余192KB空间留用。从对应的物理存储器来看,基本内存区只使用了512KB芯片,占用0000至7FFFF这512KB地址。显示内存区虽有128KB空间,但对单色显示器(MDA卡)只需4KB就足够了,因此只安装4KB的物理存储器芯片,占用了B0000至B0FFF这4KB的空间,如果使用彩色显示器(CGA卡)需要安装16KB的物理存储器,占用B8000至BBFFF这16KB的空间,可见实际使用的地址范围都小于允许使用的地址空间。
在当时(1980年末至1981年初)这么“大”容量的内存对PC机使用者来说似乎已经足够了,但是随着程序的不断增大,图象和声音的不断丰富,以及能访问更大内存空间的新型CPU相继出现,最初的PC机和MS-DOS设计的局限性变得越来越明显。到1984年,即286被普遍接受不久,人们越来越认识到640KB的限制已成为大型程序的障碍,这时,Intel和Lotus,这两家硬、软件的杰出代表,联手制定了一个由硬件和软件相结合的方案,此方法使所有PC机存取640KB以上RAM成为可能。而Microsoft刚推出Windows不久,对内存空间的要求也很高,因此它也及时加入了该行列。在1985年初,Lotus、Intel和Microsoft三家共同定义了LIM-EMS,即扩充内存规范,通常称EMS为扩充内存。当时,EMS需要一个安装在I/O槽口的内存扩充卡和一个称为EMS的扩充内存管理程序方可使用。但是I/O插槽的地址线只有24位(ISA总线),这对于386以上档次的32位机是不能适应的。所以,现在已很少使用内存扩充卡。现在微机中的扩充内存通常是用软件如DOS中的EMM386把扩展内存模拟或扩充内存来使用。所以,扩充内存和扩展内存的区别并不在于其物理存储器的位置,而在于使用什么方法来读写它。下面将作进一步介绍。
前面已经说过扩充存储器也可以由扩展存储器模拟转换而成。EMS的原理和XMS不同,它采用了页帧方式。页帧是在1MB空间中指定一块64KB空间(通常在保留内存区内,但其物理存储器来自扩展存储器),分为4页,每页16KB。EMS存储器也按16KB分页,每次可交换4页内容,以此方式可访问全部EMS存储器。符合EMS的驱动程序很多,常用的有EMM386.EXE、QEMM、TurboEMS、386MAX等。DOS和Windows中都提供了EMM386.EXE。
扩展内存
我们知道,286有24位地址线,它可寻址16MB的地址空间,而386有32位地址线,它可寻址高达4GB的地址空间,为了区别起见,我们把1MB以上的地址空间称为扩展内存XMS(eXtend memory)。
在386以上档次的微机中,有两种存储器工作方式,一种称为实地址方式或实方式,另一种称为保护方式。在实方式下,物理地址仍使用20位,所以最大寻址空间为1MB,以便与8086兼容。保护方式采用32位物理地址,寻址范围可达4GB。DOS系统在实方式下工作,它管理的内存空间仍为1MB,因此它不能直接使用扩展存储器。为此,Lotus、Intel、AST及Microsoft公司建立了MS-DOS下扩展内存的使用标准,即扩展内存规范XMS。我们常在Config.sys文件中看到的Himem.sys就是管理扩展内存的驱动程序。
经过上面分析,内存储器的划分可归纳如下:
●基本内存占据0~640KB地址空间。
●保留内存占据640KB~1024KB地址空间。分配给显示缓冲存储器、各适配卡上的ROM和系统ROM BIOS,剩余空间可作上位内存UMB。UMB的物理存储器取自物理扩展存储器。此范围的物理RAM可作为Shadow RAM使用。
●上位内存(UMB)利用保留内存中未分配使用的地址空间建立,其物理存储器由物理扩展存储器取得。UMB由EMS管理,其大小可由EMS驱动程序设定。
●高端内存(HMA)扩展内存中的第一个64KB区域(1024KB~1088KB)。由HIMEM.SYS建立和管理。
●XMS内存符合XMS规范管理的扩展内存区。其驱动程序为HIMEM.SYS。
●EMS内存符合EMS规范管理的扩充内存区。其驱动程序为EMM386.EXE等。

内存发展到今天,经历了多代技术革新,从EDO-SDRAM-DDR时代,在容量、频率、带宽等指标上都有了长足的发展。目前主流的内存是DDR3内存。

手机内存包括手机系统内存(手机本身内存)和手机内存卡(相当于手机硬盘)。其中手机系统内存本身不能扩展,因为它是直接焊在手机主板上的,大小已经固定,无法扩展,只能更换主板或更换手机;而手机内存卡是可以通过换卡扩展的,以增加手机总的内存。


GPU

GPU英文全称Graphic Processing Unit,中文翻译为“图形处理器”。GPU是相对于CPU的一个概念,由于在现代的计算机中(特别是家用系统,游戏的发烧友)图形的处理变得越来越重要,需要一个专门的图形的核心处理器。

GPU的作用
GPU是显示卡的“心脏”,也就相当于CPU在电脑中的作用,它决定了该显卡的档次和大部分性能,同时也是2D显示卡和3D显示卡的区别依据。2D显示芯片在处理3D图像和特效时主要依赖CPU的处理能力,称为“软加速”。3D显示芯片是将三维图像和特效处理功能集中在显示芯片内,也即所谓的“硬件加速”功能。显示芯片通常是显示卡上最大的芯片(也是引脚最多的)。现在市场上的显卡大多采用NVIDIA和ATI两家公司的图形处理芯片。

于是NVIDIA公司在1999年发布GeForce 256图形处理芯片时首先提出GPU的概念。GPU使显卡减少了对CPU的依赖,并进行部分原本CPU的工作,尤其是在3D图形处理时。GPU所采用的核心技术有硬体T&L、立方环境材质贴图和顶点混合、纹理压缩和凹凸映射贴图、双重纹理四像素256位渲染引擎等,而硬体T&L技术可以说是GPU的标志。

简单说GPU就是能够从硬件上支持T&L(Transform and Lighting,多边形转换与光源处理)的显示芯片,因为T&L是3D渲染中的一个重要部分,其作用是计算多边形的3D位置和处理动态光线效果,也可以称为“几何处理”。一个好的T&L单元,可以提供细致的3D物体和高级的光线特效;只大多数PC中,T&L的大部分运算是交由CPU处理的(这就也就是所谓的软件T&L),由于CPU的任务繁多,除了T&L之外,还要做内存管理、输入响应等非3D图形处理工作,因此在实际运算的时候性能会大打折扣,常常出现显卡等待CPU数据的情况,其运算速度远跟不上今天复杂三维游戏的要求。即使CPU的工作频率超过1GHz或更高,对它的帮助也不大,由于这是PC本身设计造成的问题,与CPU的速度无太大关系。
GPU最大的优势在于其提供的并行运算。通俗点,就是增加了处理图形计算的计算单元。但是它不同于多核CPU,根据东京大学一个研究(by Takeyoshi Dohi)表明,它的速度至少超过多核CPU 70倍以上。
GPU本质上就是个类似CPU的硬件设备,基于此的图形编程,是一个新的需要了解的方向。针对GPU的高级编程语言(汇编当然也可以)称为Shader Language。 Shader language 目前有3 种主流语言:
基于OpenGL 的GLSL(OpenGLShading Language,也称为GLslang)
基于Direct3D 的HLSL(High Level ShadingLanguage)语言,
NVIDIA 公司的Cg (C for Graphic)语言.。
使用shader language 编写的程序称之为shader program(着色程序)。

CPU

CPU 即 中央处理器 。
中央处理器(CPU,Central Processing Unit)是一块超大规模的集成电路,是一台计算机的运算核心和控制核心。主要包括运算器(ALU,Arithmetic and Logic Unit)和控制器(CU,Control Unit)两大部件。此外,还包括若干个寄存器和高速缓冲存储器及实现它们之间联系的数据、控制及状态的总线。它与内部存储器和输入/输出设备合称为电子计算机三大核心部件。

物理结构

CPU包括运算逻辑部件、寄存器部件和控制部件等。
逻辑部件
英文Logic components;运算逻辑部件,可以执行定点或浮点算术运算操作、移位操作以及逻辑操作,也可执行地址运算和转换。
寄存器
寄存器部件,包括通用寄存器、专用寄存器和控制寄存器。
32位CPU的寄存器
32位CPU的寄存器
通用寄存器又可分定点数和浮点数两类,它们用来保存指令执行过程中临时存放的寄存器操作数和中间(或最终)的操作结果。
通用寄存器是中央处理器的重要组成部分,大多数指令都要访问到通用寄存器。通用寄存器的宽度决定计算机内部的数据通路宽度,其端口数目往往可影响内部操作的并行性。
专用寄存器是为了执行一些特殊操作所需用的寄存器。
控制寄存器(CR0~CR3)用于控制和确定处理器的操作模式以及当前执行任务的特性。CR0中含有控制处理器操作模式和状态的系统控制标志;CR1保留不用;CR2含有导致页错误的线性地址;CR3中含有页目录表物理内存基地址.
控制部件
英文Control unit;控制部件,主要是负责对指令译码,并且发出为完成每条指令所要执行的各个操作的控制信号。
其结构有两种:一种是以微存储为核心的微程序控制方式;一种是以逻辑硬布线结构为主的控制方式。
微存储中保持微码,每一个微码对应于一个最基本的微操作,又称微指令;各条指令是由不同序列的微码组成,这种微码序列构成微程序。中央处理器在对指令译码以后,即发出一定时序的控制信号,按给定序列的顺序以微周期为节拍执行由这些微码确定的若干个微操作,即可完成某条指令的执行。
简单指令是由(3~5)个微操作组成,复杂指令则要由几十个微操作甚至几百个微操作组成。

主要功能
处理指令
英文Processing instructions;这是指控制程序中指令的执行顺序。程序中的各指令之间是有严格顺序的,必须严格按程序规定的顺序执行,才能保证计算机系统工作的正确性。
执行操作
英文Perform an action;一条指令的功能往往是由计算机中的部件执行一序列的操作来实现的。CPU要根据指令的功能,产生相应的操作控制信号,发给相应的部件,从而控制这些部件按指令的要求进行动作。
控制时间
英文Control time;时间控制就是对各种操作实施时间上的定时。在一条指令的执行过程中,在什么时间做什么操作均应受到严格的控制。只有这样,计算机才能有条不紊地工作。
处理数据
即对数据进行算术运算和逻辑运算,或进行其他的信息处理。
其功能主要是解释计算机指令以及处理计算机软件中的数据, 并执行指令。在微型计算机中又称微处理器,计算机的所有操作都受CPU控制,CPU的性能指标直接决定了微机系统的性能指标。CPU具有以下4个方面的基本功能:数据通信,资源共享,分布式处理,提供系统可靠性。运作原理可基本分为四个阶段:提取(Fetch)、解码(Decode)、执行(Execute)和写回(Writeback)。

工作过程
CPU从存储器或高速缓冲存储器中取出指令,放入指令寄存器,并对指令译码。它把指令分解成一系列的微操作,然后发出各种控制命令,执行微操作系列,从而完成一条指令的执行。指令是计算机规定执行操作的类型和操作数的基本命令。指令是由一个字节或者多个字节组成,其中包括操作码字段、一个或多个有关操作数地址的字段以及一些表征机器状态的状态字以及特征码。有的指令中也直接包含操作数本身。
提取
第一阶段,提取,从存储器或高速缓冲存储器中检索指令(为数值或一系列数值)。由程序计数器(Program Counter)指定存储器的位置。(程序计数器保存供识别程序位置的数值。换言之,程序计数器记录了CPU在程序里的踪迹。)
解码
CPU根据存储器提取到的指令来决定其执行行为。在解码阶段,指令被拆解为有意义的片段。根据CPU的指令集架构(ISA)定义将数值解译为指令。一部分的指令数值为运算码(Opcode),其指示要进行哪些运算。其它的数值通常供给指令必要的信息,诸如一个加法(Addition)运算的运算目标。
执行
在提取和解码阶段之后,紧接着进入执行阶段。该阶段中,连接到各种能够进行所需运算的CPU部件。
例如,要求一个加法运算,算术逻辑单元(ALU,Arithmetic Logic Unit)将会连接到一组输入和一组输出。输入提供了要相加的数值,而输出将含有总和的结果。ALU内含电路系统,易于输出端完成简单的普通运算和逻辑运算(比如加法和位元运算)。如果加法运算产生一个对该CPU处理而言过大的结果,在标志暂存器里可能会设置运算溢出(Arithmetic Overflow)标志。
写回
最终阶段,写回,以一定格式将执行阶段的结果简单的写回。运算结果经常被写进CPU内部的暂存器,以供随后指令快速存取。在其它案例中,运算结果可能写进速度较慢,但容量较大且较便宜的主记忆体中。某些类型的指令会操作程序计数器,而不直接产生结果。这些一般称作“跳转”(Jumps),并在程式中带来循环行为、条件性执行(透过条件跳转)和函式。许多指令会改变标志暂存器的状态位元。这些标志可用来影响程式行为,缘由于它们时常显出各种运算结果。例如,以一个“比较”指令判断两个值大小,根据比较结果在标志暂存器上设置一个数值。这个标志可藉由随后跳转指令来决定程式动向。在执行指令并写回结果之后,程序计数器值会递增,反覆整个过程,下一个指令周期正常的提取下一个顺序指令。

性能参数
计算机的性能在很大程度上由CPU的性能所决定,而CPU的性能主要体现在其运行程序的速度上。影响运行速度的性能指标包括CPU的工作频率、Cache容量、指令系统和逻辑结构等参数。
主频
主频也叫时钟频率,单位是兆赫(MHz)或千兆赫(GHz),用来表示CPU的运算、处理数据的速度。通常,主频越高,CPU处理数据的速度就越快。
CPU的主频=外频×倍频系数。主频和实际的运算速度存在一定的关系,但并不是一个简单的线性关系。 所以,CPU的主频与CPU实际的运算能力是没有直接关系的,主频表示在CPU内数字脉冲信号震荡的速度。在Intel的处理器产品中,也可以看到这样的例子:1 GHz Itanium芯片能够表现得差不多跟2.66 GHz至强(Xeon)/Opteron一样快,或是1.5 GHz Itanium 2大约跟4 GHz Xeon/Opteron一样快。CPU的运算速度还要看CPU的流水线、总线等各方面的性能指标。
外频
外频是CPU的基准频率,单位是MHz。CPU的外频决定着整块主板的运行速度。通俗地说,在台式机中,所说的超频,都是超CPU的外频(当然一般情况下,CPU的倍频都是被锁住的)相信这点是很好理解的。但对于服务器CPU来讲,超频是绝对不允许的。前面说到CPU决定着主板的运行速度,两者是同步运行的,如果把服务器CPU超频了,改变了外频,会产生异步运行,(台式机很多主板都支持异步运行)这样会造成整个服务器系统的不稳定。
绝大部分电脑系统中外频与主板前端总线不是同步速度的,而外频与前端总线(FSB)频率又很容易被混为一谈。
总线频率
前端总线(FSB)是将CPU连接到北桥芯片的总线。前端总线(FSB)频率(即总线频率)是直接影响CPU与内存直接数据交换速度。有一条公式可以计算,即数据带宽=(总线频率×数据位宽)/8,数据传输最大带宽取决于所有同时传输的数据的宽度和传输频率。比方,支持64位的至强Nocona,前端总线是800MHz,按照公式,它的数据传输最大带宽是6.4GB/秒。
外频与前端总线(FSB)频率的区别:前端总线的速度指的是数据传输的速度,外频是CPU与主板之间同步运行的速度。也就是说,100MHz外频特指数字脉冲信号在每秒钟震荡一亿次;而100MHz前端总线指的是每秒钟CPU可接受的数据传输量是100MHz×64bit÷8bit/Byte=800MB/s。
倍频系数
倍频系数是指CPU主频与外频之间的相对比例关系。在相同的外频下,倍频越高CPU的频率也越高。但实际上,在相同外频的前提下,高倍频的CPU本身意义并不大。这是因为CPU与系统之间数据传输速度是有限的,一味追求高主频而得到高倍频的CPU就会出现明显的“瓶颈”效应-CPU从系统中得到数据的极限速度不能够满足CPU运算的速度。一般除了工程样版的Intel的CPU都是锁了倍频的,少量的如Intel酷睿2核心的奔腾双核E6500K和一些至尊版的CPU不锁倍频,而AMD之前都没有锁,AMD推出了黑盒版CPU(即不锁倍频版本,用户可以自由调节倍频,调节倍频的超频方式比调节外频稳定得多)。
缓存
缓存大小也是CPU的重要指标之一,而且缓存的结构和大小对CPU速度的影响非常大,CPU内缓存的运行频率极高,一般是和处理器同频运作,工作效率远远大于系统内存和硬盘。实际工作时,CPU往往需要重复读取同样的数据块,而缓存容量的增大,可以大幅度提升CPU内部读取数据的命中率,而不用再到内存或者硬盘上寻找,以此提高系统性能。但是由于CPU芯片面积和成本的因素来考虑,缓存都很小。
L1 Cache(一级缓存)是CPU第一层高速缓存,分为数据缓存和指令缓存。内置的L1高速缓存的容量和结构对CPU的性能影响较大,不过高速缓冲存储器均由静态RAM组成,结构较复杂,在CPU管芯面积不能太大的情况下,L1级高速缓存的容量不可能做得太大。一般服务器CPU的L1缓存的容量通常在32-256KB。
L2 Cache(二级缓存)是CPU的第二层高速缓存,分内部和外部两种芯片。内部的芯片二级缓存运行速度与主频相同,而外部的二级缓存则只有主频的一半。L2高速缓存容量也会影响CPU的性能,原则是越大越好,以前家庭用CPU容量最大的是512KB,笔记本电脑中也可以达到2M,而服务器和工作站上用CPU的L2高速缓存更高,可以达到8M以上。
L3 Cache(三级缓存),分为两种,早期的是外置,内存延迟,同时提升大数据量计算时处理器的性能。降低内存延迟和提升大数据量计算能力对游戏都很有帮助。而在服务器领域增加L3缓存在性能方面仍然有显著的提升。比方具有较大L3缓存的配置利用物理内存会更有效,故它比较慢的磁盘I/O子系统可以处理更多的数据请求。具有较大L3缓存的处理器提供更有效的文件系统缓存行为及较短消息和处理器队列长度。
其实最早的L3缓存被应用在AMD发布的K6-III处理器上,当时的L3缓存受限于制造工艺,并没有被集成进芯片内部,而是集成在主板上。在只能够和系统总线频率同步的L3缓存同主内存其实差不了多少。后来使用L3缓存的是英特尔为服务器市场所推出的Itanium处理器。接着就是P4EE和至强MP。Intel还打算推出一款9MB L3缓存的Itanium2处理器,和以后24MB L3缓存的双核心Itanium2处理器。
但基本上L3缓存对处理器的性能提高显得不是很重要,比方配备1MB L3缓存的Xeon MP处理器却仍然不是Opteron的对手,由此可见前端总线的增加,要比缓存增加带来更有效的性能提升。

指令集

CPU依靠指令来自计算和控制系统,每款CPU在设计时就规定了一系列与其硬件电路相配合的指令系统。指令的强弱也是CPU的重要指标,指令集是提高微处理器效率的最有效工具之一。
从现阶段的主流体系结构讲,指令集可分为复杂指令集和精简指令集两部分(指令集共有四个种类),而从具体运用看,如Intel的MMX(Multi Media Extended,此为AMD猜测的全称,Intel并没有说明词源)、SSE、SSE2(Streaming-Single instruction multiple data-Extensions 2)、SSE3、SSE4系列和AMD的3DNow!等都是CPU的扩展指令集,分别增强了CPU的多媒体、图形图象和Internet等的处理能力。
通常会把CPU的扩展指令集称为”CPU的指令集”。SSE3指令集也是规模最小的指令集,此前MMX包含有57条命令,SSE包含有50条命令,SSE2包含有144条命令,SSE3包含有13条命令。
从586CPU开始,CPU的工作电压分为内核电压和I/O电压两种,通常CPU的核心电压小于等于I/O电压。其中内核电压的大小是根据CPU的生产工艺而定,一般制作工艺越小,内核工作电压越低;I/O电压一般都在1.6~5V。低电压能解决耗电过大和发热过高的问题。

CISC
CISC指令集,也称为复杂指令集,英文名是CISC,(Complex Instruction Set Computer的缩写)。在CISC微处理器中,程序的各条指令是按顺序串行执行的,每条指令中的各个操作也是按顺序串行执行的。顺序执行的优点是控制简单,但计算机各部分的利用率不高,执行速度慢。其实它是英特尔生产的x86系列(也就是IA-32架构)CPU及其兼容CPU,如AMD、VIA的。即使是新起的X86-64(也说成AMD64)都是属于CISC的范畴。
要知道什么是指令集还要从当今的X86架构的CPU说起。X86指令集是Intel为其第一块16位CPU(i8086)专门开发的,IBM1981年推出的世界第一台PC机中的CPU-i8088(i8086简化版)使用的也是X86指令,同时电脑中为提高浮点数据处理能力而增加了X87芯片,以后就将X86指令集和X87指令集统称为X86指令集。
虽然随着CPU技术的不断发展,Intel陆续研制出更新型的i80386.i80486直到过去的PII至强、PIII至强、Pentium 3,Pentium 4系列,最后到今天的酷睿2系列、至强(不包括至强Nocona),但为了保证电脑能继续运行以往开发的各类应用程序以保护和继承丰富的软件资源,所以Intel公司所生产的所有CPU仍然继续使用X86指令集,所以它的CPU仍属于X86系列。由于Intel X86系列及其兼容CPU(如AMD Athlon MP、)都使用X86指令集,所以就形成了今天庞大的X86系列及兼容CPU阵容。x86CPU主要有intel的服务器CPU和AMD的服务器CPU两类。

RISC
RISC是英文“Reduced Instruction Set Computing ”的缩写,中文意思是“精简指令集”。他是由John Cocke(约翰·科克)提出的,John Cocke在IBM公司从事的第一个项目是研究Stretch计算机(世界上第一个“超级计算机”型号),他很快成为大型机专家。1974年,Cocke和他领导的研究小组开始尝试研发每秒能够处理300线呼叫的电话交换网络。为了实现这个目标,他不得不寻找一种办法来提高交换系统已有架构的交换率。1975年,John Cocke研究了IBM370 CISC(Complex Instruction Set Computing,复杂指令集计算)系统,对CISC机进行测试表明,各种指令的使用频度相当悬殊,最常使用的是一些比较简单的指令,它们仅占指令总数的20%,但在程序中出现的频度却占80%

复杂的指令系统必然增加微处理器的复杂性,使处理器的研制时间长,成本高。并且复杂指令需要复杂的操作,必然会降低计算机的速度。基于上述原因,20世纪80年代RISC型CPU诞生了,相对于CISC型CPU,RISC型CPU不仅精简了指令系统,还采用了一种叫做“超标量和超流水线结构”,大大增加了并行处理能力。RISC指令集是高性能CPU的发展方向。它与传统的CISC(复杂指令集)相对。相比而言,RISC的指令格式统一,种类比较少,寻址方式也比复杂指令集少。当然处理速度就提高很多了。广泛应用于移动和嵌入设备的ARM处理器采用的就是RISC指令集。在中高档服务器中采用RISC指令的CPU主要有以下几类:PowerPC处理器、SPARC处理器、PA-RISC处理器、MIPS处理器、Alpha处理器。

处理器技术

超流水线与超标量
在解释超流水线与超标量前,先了解流水线(Pipeline)。流水线是Intel首次在486芯片中开始使用的。流水线的工作方式就象工业生产上的装配流水线。在CPU中由5-6个不同功能的电路单元组成一条指令处理流水线,然后将一条X86指令分成5-6步后再由这些电路单元分别执行,这样就能实现在一个CPU时钟周期完成一条指令,因此提高CPU的运算速度。经典奔腾每条整数流水线都分为四级流水,即指令预取、译码、执行、写回结果,浮点流水又分为八级流水。超标量是通过内置多条流水线来同时执行多个处理器,其实质是以空间换取时间。而超流水线是通过细化流水、提高主频,使得在一个机器周期内完成一个甚至多个操作,其实质是以时间换取空间。例如Pentium 4的流水线就长达20级。将流水线设计的步(级)越长,其完成一条指令的速度越快,因此才能适应工作主频更高的CPU。但是流水线过长也带来了一定副作用,很可能会出现主频较高的CPU实际运算速度较低的现象,Intel的奔腾4就出现了这种情况,虽然它的主频可以高达1.4G以上,但其运算性能却远远比不上AMD 1.2G的速龙甚至奔腾III。

多线程
同时多线程Simultaneous Multithreading,简称SMT。SMT可通过复制处理器上的结构状态,让同一个处理器上的多个线程同步执行并共享处理器的执行资源,可最大限度地实现宽发射、乱序的超标量处理,提高处理器运算部件的利用率,缓和由于数据相关或Cache未命中带来的访问内存延时。当没有多个线程可用时,SMT处理器几乎和传统的宽发射超标量处理器一样。SMT最具吸引力的是只需小规模改变处理器核心的设计,几乎不用增加额外的成本就可以显著地提升效能。多线程技术则可以为高速的运算核心准备更多的待处理数据,减少运算核心的闲置时间。这对于桌面低端系统来说无疑十分具有吸引力。Intel从3.06GHz Pentium 4开始,部分处理器将支持SMT技术。

多核心
多核心,也指单芯片多处理器(Chip Multiprocessors,简称CMP)。CMP是由美国斯坦福大学提出的,其思想是将大规模并行处理器中的SMP(对称多处理器)集成到同一芯片内,各个处理器并行执行不同的进程。这种依靠多个CPU同时并行地运行程序是实现超高速计算的一个重要方向,称为并行处理。与CMP比较,SMT处理器结构的灵活性比较突出。但是,当半导体工艺进入0.18微米以后,线延时已经超过了门延迟,要求微处理器的设计通过划分许多规模更小、局部性更好的基本单元结构来进行。相比之下,由于CMP结构已经被划分成多个处理器核来设计,每个核都比较简单,有利于优化设计,因此更有发展前途。IBM 的Power 4芯片和Sun的MAJC5200芯片都采用了CMP结构。多核处理器可以在处理器内部共享缓存,提高缓存利用率,同时简化多处理器系统设计的复杂度。但这并不是说明,核心越多,性能越高,比如说16核的CPU就没有8核的CPU运算速度快,因为核心太多,而不能合理进行分配,所以导致运算速度减慢。在买电脑时请酌情选择。2005年下半年,Intel和AMD的新型处理器也将融入CMP结构。新安腾处理器开发代码为Montecito,采用双核心设计,拥有最少18MB片内缓存,采取90nm工艺制造。它的每个单独的核心都拥有独立的L1,L2和L3 cache,包含大约10亿支晶体管。

SMP
SMP(Symmetric Multi-Processing),对称多处理结构的简称,是指在一个计算机上汇集了一组处理器(多CPU),各CPU之间共享内存子系统以及总线结构。在这种技术的支持下,一个服务器系统可以同时运行多个处理器,并共享内存和其他的主机资源。像双至强,也就是所说的二路,这是在对称处理器系统中最常见的一种(至强MP可以支持到四路,AMD Opteron可以支持1-8路)。也有少数是16路的。但是一般来讲,SMP结构的机器可扩展性较差,很难做到100个以上多处理器,常规的一般是8个到16个,不过这对于多数的用户来说已经够用了。在高性能服务器和工作站级主板架构中最为常见,像UNIX服务器可支持最多256个CPU的系统。
构建一套SMP系统的必要条件是:支持SMP的硬件包括主板和CPU;支持SMP的系统平台,再就是支持SMP的应用软件。为了能够使得SMP系统发挥高效的性能,操作系统必须支持SMP系统,如WINNT、LINUX、以及UNIX等等32位操作系统。即能够进行多任务和多线程处理。多任务是指操作系统能够在同一时间让不同的CPU完成不同的任务;多线程是指操作系统能够使得不同的CPU并行的完成同一个任务。
要组建SMP系统,对所选的CPU有很高的要求,首先、CPU内部必须内置APIC(Advanced Programmable Interrupt Controllers)单元。Intel 多处理规范的核心就是高级可编程中断控制器(Advanced Programmable Interrupt Controllers–APICs)的使用;再次,相同的产品型号,同样类型的CPU核心,完全相同的运行频率;最后,尽可能保持相同的产品序列编号,因为两个生产批次的CPU作为双处理器运行的时候,有可能会发生一颗CPU负担过高,而另一颗负担很少的情况,无法发挥最大性能,更糟糕的是可能导致死机。

NUMA技术
NUMA即非一致访问分布共享存储技术,它是由若干通过高速专用网络连接起来的独立节点构成的系统,各个节点可以是单个的CPU或是SMP系统。在NUMA中,Cache 的一致性有多种解决方案,一般采用硬件技术实现对cache的一致性维护,通常需要操作系统针对NUMA访存不一致的特性(本地内存和远端内存访存延迟和带宽的不同)进行特殊优化以提高效率,或采用特殊软件编程方法提高效率。NUMA系统的例子。这里有3个SMP模块用高速专用网络联起来,组成一个节点,每个节点可以有12个CPU。像Sequent的系统最多可以达到64个CPU甚至256个CPU。显然,这是在SMP的基础上,再用NUMA的技术加以扩展,是这两种技术的结合。

乱序执行
乱序执行(out-of-orderexecution),是指CPU允许将多条指令不按程序规定的顺序分开发送给各相应电路单元处理的技术。这样将根据个电路单元的状态和各指令能否提前执行的具体情况分析后,将能提前执行的指令立即发送给相应电路单元执行,在这期间不按规定顺序执行指令,然后由重新排列单元将各执行单元结果按指令顺序重新排列。采用乱序执行技术的目的是为了使CPU内部电路满负荷运转并相应提高了CPU的运行程序的速度。

分枝技术
(branch)指令进行运算时需要等待结果,一般无条件分枝只需要按指令顺序执行,而条件分枝必须根据处理后的结果,再决定是否按原先顺序进行。

计算硬件未来的发展

未来,计算能力将跳出狭义的“计算机”的范畴。我们已经看到台式计算机之后平板电脑-手机的大爆发,其出货量已经超过了传统计算机(台式计算机和笔记本电脑)。而且各种嵌入式设备,如各种开发板、RaspberryPi(树莓派) 、Edison卡片式电脑层出不穷。如果这还算时通用计算设备的话,更有N多专用的智能硬件设备如雨后春笋般涌现出来,使得计算“泛物化”了。未来的另一大趋势时云计算的崛起。大型的云计算中心可以使每个人获得巨大的计算能力,而不用拥有强大的硬件。在这样的中心,超级计算能力是通过把大量普通的服务器联接成集群而达到的。

试看未来时代,计算必将普及到全人类,惠及全人类。生活无处不计算。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/swedepan/article/details/34364037

智能推荐

GD32F103RCT6/GD32F303RCT6(6.2)USART串口库函数介绍(包含DMA库函数)-程序员宅基地

文章浏览阅读699次,点赞6次,收藏10次。GD32教程 单片机 嵌入式 串口 向上代码兼容GD32F303RCT6中使用

宁波大学2013 计算机应用基础 高级c语言程序 练习册答案,计算机应用基础A1-程序员宅基地

文章浏览阅读286次。spContent=软件定义未来,软件实现了用计算机解决真实世界的各种问题。自计算机诞生之日起,人们探索的重点不仅在于建造运算速度更快、处理能力更强的计算机,而且在于开发能让人们更有效使用这种计算设备的各种软件。本课程作为大学阶段的第一门计算机基础课程,主要介绍面向过程的结构化程序设计思想及方法,为你打开软件设计与开发的大门。数字时代呼啸而来,懂得程序设计,就能更好的在数字海洋中自由遨游。本课程面..._c语言程序设计孙改平答案

mybatisplus 更新数据时(update updatebyId) 将指定字段的null值更新到数据库_mybatis updatebyid 空值更新入库-程序员宅基地

文章浏览阅读4.1k次,点赞2次,收藏3次。mybatisplus 在封装更新语句时 会默认不更新值为null的字段;有的时候我们需要指定某个字段为null时更新进去又不想去mapper.xml 写update sql于是就有了如图 在对应的字段上面添加 @tableField注解注意 jdbcType 必须要有 不然会报错 无效列类型value 对应的是数据库的字段名另外在update的时候运用此注解 还有以下作用有兴趣的可以多看看源码了解哈..._mybatis updatebyid 空值更新入库

VS2010中ashx文件中代码折叠实现方法(超级有用,终于找到了方法!)_在vs2010.net的.ashx文件中如何把方法中的部分代码折叠起来-程序员宅基地

文章浏览阅读1.8k次。工具 --- 选项 --- 文本编辑器 --- 文件扩展名,只要在右侧添加 ashx ,选中MS-VS C# 保存后_在vs2010.net的.ashx文件中如何把方法中的部分代码折叠起来

c++ 构造函数详细介绍-程序员宅基地

文章浏览阅读1.1k次,点赞33次,收藏17次。c++构造函数详细介绍

双路比例阀放大器_双比例阀放大板是什么东西-程序员宅基地

文章浏览阅读55次。在液压控制方面,双路比例阀放大器可以将输入的控制信号分成两路,分别控制两个液压阀的开度和流量。这样可以实现更加精确和灵活的液压控制系统,满足不同应用场景的需求。例如,在挖掘机、装载机等重型机械设备中,双路比例阀放大器可以实现多级液压系统的同时控制,提高工作效率和安全性。双路比例阀放大器是一种常见的电子设备,它能够将输入信号放大到所需的水平,并输出两个相等或不同的放大信号。这种放大器通常由一个放大器和一个驱动电路组成,可以用于各种应用中,如液压控制、气动控制等。_双比例阀放大板是什么东西

随便推点

二叉树及先序遍历二叉树,中序遍历二叉树,后序遍历二叉树_1. 输入二叉树结点数,先序遍历序列,中序遍历序列2.输出该二叉树的后序遍历序-程序员宅基地

文章浏览阅读2.5k次,点赞2次,收藏17次。1.二叉树的常用性质<1>.在二叉树的第i层上最多有2 i-1 个节点 。(i>=1)<2>.二叉树中如果深度为k(有k层),那么最多有2k-1个节点。(k>=1)<3>.若二叉树按照从上到下从左到右依次编号,则若某节点编号为k,则其左右子树根节点编号分别为2k和2k+1;<4>.二叉树分类:满二叉树,完全二叉树..._1. 输入二叉树结点数,先序遍历序列,中序遍历序列2.输出该二叉树的后序遍历序

微软cl编译器的简单使用_cl编译器tiny模式-程序员宅基地

文章浏览阅读562次。cl的位置:开始 –> 所有程序 -> Microsoft Visual Studio ->Visual Studio Tools -> Developer Command Prompt编译器产生通用对象文件格式 (COFF) 对象 (.obj) 文件。链接器产生可执行文件 (.exe) 或动态链接库文件 (DLL)。注意,所有编译器选项都区分大小写。若要编译但不链接,请使用/_cl编译器tiny模式

设置相机水印字体的大小、位置_平板拍照的水印字体大小-程序员宅基地

文章浏览阅读7.9k次。需求是根据保存的照片的不同分辨率设置不同大小的文字水印,文字需要黑色描边,白底色,位于照片右下角水印描边是非常重要的,两种区别明显的颜色(示例代码中使用的就是黑色和白色)可以有效的提升在不同背景下水印的可识别度。解决方法是获取照片的尺寸,然后根据照片的尺寸进行文字大小的设置;并利用canvas.drawText(test,x,y,paint) 设置文字绘制的位置。根据Bitmap的尺..._平板拍照的水印字体大小

C++ 中的虚:虚基类和虚继承_6-3 沙发床-虚基类-程序员宅基地

文章浏览阅读415次。C++ 中的虚:虚基类和虚继承一、问题由来以沙发床为例:沙发床继承了 沙发 和 床。#include <iostream>#include<string>using namespace std;class Sofa{public: Sofa(float pe = .0, string cr = "black") :price_(pe), color_..._6-3 沙发床-虚基类

UVM——RAL模型基础之一(相关层次、设计流程)_uvm ral-程序员宅基地

文章浏览阅读1.2w次,点赞36次,收藏244次。文章目录一、RAL设计流程二、RAL模型层次相关类三、RAL模型设计实现3.1.利用RAL generator(ralgen)将寄存器描述性文档生成UVM寄存器模型3.1.1.创建寄存器模型类(ralgen自动生成)3.1.2.将寄存器放入register block容器中,并加入到对应的Address Map3.2.创建RAL适配器(adapter)3.3.验证环境中实例化RAL模型并建立连接3..._uvm ral

usb3.1和3.0的区别,usb3.1有什么优点-程序员宅基地

文章浏览阅读2.2w次。从测试结果来看,USB 3.1接口的实际性能要比USB 3.0高出不少,连续读写速度在500MB/s到600MB/s左右,最高成绩甚至可以突破700MB/s。而USB 3.0接口方面,其连续读写速率大概在300MB/s到400MB/s左右。虽然USB 3.1标称的接口理论速率是10Gbps,但是其还保留了部分带宽用以支持其他功能,因此其实际的有效带宽大约为7.2Gbps,理论传输速度应该可..._usb3.1和3.0

推荐文章

热门文章

相关标签