绿豆.Net

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

 

 众所,中              

众所周知     中央处理器(Central Processing Unit 简称CPU)是电脑的核心部分,而一台电脑的性能主要是取决于CPU.CPU是电脑的总控制中心,是电脑能力及速度的来源,就像汽车的引擎.频率越高的CPU理论上越快,但也需要其他部件的配合.而在电脑里另一个决定性能和速度的主要部件就是内存,简单的说我们在键盘上敲打是给CPU发出命令,CPU则通过内存快速读取数据,所以内存容量越大,带宽越高处理的数据就越快性能就越好.PU和内存的性能不只是频率高容量的就一定好.一个CPU给我们提供的不只是频率,二级缓存也是一个表现CPU性能的参数,而更多的是不同品牌所独有的技术.内存也是一样,其芯片的存取时间是内存的另一个重要指标,单位以纳秒(ns)表示.

首先介绍一下CPU和内存的一些技术名词

 

一,中央处理器(Central Processing Unit 简称CPU).

  (一),CPU内核结构

CPU内核主要分为两大部分:运算器和控制器

 

  1,运算器

 1),算术逻辑运算单元ALU(ArithmeticandLogicUnit)

       ALU主要完成对二进制数据的定点算术运算(加减乘除),逻辑运算(与或非异或)以及移位操作在某些CPU中还有专门用于处理移位操作的移位器.通常ALU由两个输入端和一个输出端.整数单元有时也称为IEU(IntegerExecutioUnit).我们通常所说的”CPUXX位的就是指ALU所能处理的数据的位数.

     2),浮点运算单元FPU(FloatingPointUnit)

FPU主要负责浮点运算和高精度整数运算.有些FPU还具有向量运算的功能,另外一些则有专门的向量单元.

     3),通用寄存器

       通用寄存器组是一组最快的存储器,用来保存参加运算的操作数和中间结果.

     4),专用寄存器

       专用寄存器是一些状态寄存器,不能通过程序改变,CPU自己控制,表明某种状态.

                      

                     2控制器

                      运算器只能完成运算,而控制器用于控制整个CPU的工作.

                     1),指令控制器

                      指令控制器是控制器中相当重要的部分,它要完成取指令,分析指令等操作,然后交给执行单元(ALUFPU)来执行,同时还要形成下一条指令的地址.

                     2),时序控制器 

                      时序控制器的作用是为每条指令按时间顺序提供控制信号.时序控制器包括时钟发生器和倍频定义单元,其中时钟发生器由石英晶体震荡器发出非常稳定的脉冲信号,就是CPU的主频, 而倍频定义单元则定义了CPU主频是存储器频率(总线频率)的几倍.

                     3),总线控制器

                     总线控制器主要用于控制CPU的内外部总线,包括地址总线,数据总线,控制总线等.

                     4)中断控制器

                     中断控制器用于控制各种各样的中断请求,并根据优先级的高低对中断请求进行排队,逐个交给CPU处理.

                   

                     (二)CPU核心的设计

                     CPU的性能是由什么决定呢?单纯的一个ALU速度在一个CPU中并不起决定性作用,因为ALU的速度都差不多,而一个CPU的性能表现的决定性因素就在于CPU内核的设计。

1, 超标量

既然无法大幅提高ALU的速度,有什么代替的方法呢?并行处理的方法又一次产生了强大的作用。所谓的超标量CPU,就是只集成了多个ALU,多个FPU,多个译码器和多条流水线的CPU,并行处理的方式来提高性能。

         超标量技术应该很容易理解的,不过有一点需要注意,就是不要去管“超标量”之前的哪个数字,比如“9路超标量”,不同的厂商对于这个数字有着不同的定义,更多的这只是一种商业上的宣传手段。

2, 流水线

流水线是现代RISC核心的一个重要设计,它极大的提高了性能。

对于一条具体的指令执行过程,通常可以分为五大部分:取指令,指令译码,取操作数运算,写结果。其中前三步一般由指令控制器完成,后两步则由运算器完成。按照传统的方式,所有指令顺序执行,那么先是指令控制器工作,完成第一条指令的前三步,然后运算器工作,完成后两步,在指令控制器工作,完成第二条指令的前三步,在是运算器,完成第二条指令的后两部。

很明显,当指令控制器工作是运算器完成了第一条指令的前三步后,直接开始第二条指令的操作,运算单元也是,这样就形成了流水线系统,这是一条2级流水线。

         如果是一个超标量系统,假设有三个指令控制单元和两个运算单元,那么就可以在完成了第一条指令的取址地址工作后直接开始第二条指令 的取址,这时第一条指令在进行译码,然后第三条指令译码,第一条指令取操作数。。。。这样就是一个5级流水线。很显然,5级流水线的平均理论速度是不用流水线的4倍。

         流水线系统最大系统限度地利用了CPU资源,使每个部件在每个部件在每个时钟周期都工作,大大提高了效率。但是,流水线有两个非常大的问题:相关和转移。

         在一个流水线系统中,如果第二条指令需要用到第一条指令的结果,这种情况叫做相关。以上面哪个5级流水线为例,当第二条指令需要取操作数时,第一条指令的运算还没有完成,如果这时第二条指令就去取操作数,就会得到错误的结果。所以,这时整条流水线不得不停顿下来,等待第一条指令的完成。这是很讨厌的问题,特别是对于比较长的流水线,比如20级,这种停顿通常需要损失十几个时钟周期。目前解决这个问题的方法是乱序执行。乱序执行的原理是在两条相关指令中插入不相关的指令,使整条流水线顺畅。比如上面的例子中, 开始执行第一条指令后直接开始执行第三条指令(假设第三条指令不相关),然后才开始执行第二条指令,这样当第二条指令需要取操作数时第一条指令刚好完成,而且第三条指令也快完成了,整条流水线不会停顿,当然,流水线的阻塞现象还是不能完全避免的,尤其是当相关指令非常多的时候。

另一个大问题是条件转移。在上面的例子中,如果第一条指令是一个条件转移指令,那么系统就会不清楚下面应该执行哪一条指令?这时候必须等第一条指令的判断结果出来才能执行第二条指令。条件转移所造成的流水线停顿甚至比相关还要严重的多。所以,现在采用分支预测技术来处理转移问题。虽然我们的程序中充满着分支,而且哪一条分支都是有可能的 ,但大多数情况下总是 选择某一条分支,比如一个循环的末尾是一个分支,除了最后一次我们需要跳出循环外,其他的时候我们总是选择继续循环这条分支。根据这些原则,分支预测技术可以在没有得到结果之前预测下一条指令是什么然后执行它,现在的分支预测技术 能够达到90%以上的正确率,但是,一旦预测错误,CPU仍然不得不清理整条流水线并回到分支点,这将损失大量的时钟周期。所以,进一步提高分支预测的准确率也是正在研究的一个课题。

         越是长的流水线,相关和转移两大问题也越严重,所以,流水线并不是越长越好,超标量也不是越多越好,找到一个速度与效率的平衡点才是最重要的。

 

(三),CPU的外核

      1,解码器 

        这是X86CPU才有的东西,它的作用是把长度不定的X86指令转换为长度固定的类似于RISC的指令,并交给RISC内核,解码分为硬件解码和微解码,对于简单的X86指令只要硬件解码即可,速度较快,而遇到复杂的X86指令则需要进行微解码器,并把它分成若干条简单指令,速度较慢且很复杂。好在这些复杂的指令很少用到的。

           

      2  一级缓存和二级缓存(CACHE)

                       一级缓存和二级缓存是为了缓解较快的CPU与较慢的存储器之间的矛盾而产生的,一级缓存通常集成在CPU内核,而二级缓存则是以OnDie OnBoard的方式以较快于存储器的速度运行.对于一些大数据交换量的工作,CPUCache显的尤为重要.

 

                     二. 内存储器

                     1,内存的基本概念 

                       内存(内存储器)是微型计算机主机的组成部分,用来存放当前正在使用的或随时要使用的程序或数据. CPU可以直接访问.微机以字节为单位线形地组织内存储器,每个存储单元(一个字节)都有一个唯一的编号.24位地址总线可以提供的地址编号为224=16M字节.内存储器按其工作特点分为:只读存 储器ROM(read---onlymemory)和随机存取存储器RAM(random access memory).

                         

                     2.RAM的种类

                       1)动态内存DRAM(dynamic ram):需要周期性地给电容充电(刷新).这种存储器集成度较高,价格较低,但由于需要周期性地刷新,存取速度较慢.一种叫做SARAM的新型DRAM,由于采用与系统时钟同步的技术,所以比DRAM快的多.当今,多数计算机用的都是SDRAM.

                       2)静态内存SRAM(static ram):静态RAM是利用双稳态的触发器来存储1”2”.”静态的意思是指它不需要像DRAM那样经常刷新.所以,SRAM比任何形式的DRAM都快得多,也稳定得多.SRAM的价格比DRAM贵得多,所以只用在特殊场合(如高速缓冲存储器CACHE )

                     3.内存条

                      内存集成电路比CPU芯片小一些,通常封装在一条形电路板上,俗称内存.条.

                     4.高速缓冲存储器

                      为提高CPU的处理速度,当今计算机中大都配有高速缓冲存储(CACHE),也 称缓存,实际上是一种特殊的高速存储器.缓存的存取速度比内存要快,所以就提高罗勒处理速度.

                      多数现代计算机都配有两极缓存.

                      一级缓存也叫主缓存,或内部缓存,直接设计在CPU芯片内部.一级缓存容量很小,通常在8KB-64KB之间.二级缓存也叫外部缓存,不在CPU内部而是独立的SRAM芯片,其速度比一级缓存稍慢,但容量大,多在64KB---2MB之间.人们讨论缓存时,通常是指外部缓存.CPU需要指令或数据时,实际检索哦哦存储器的顺序是:首先检索一级缓存,然后是二级缓存,再往后是RAM.

      5.只读存储器

                      只读存储器(READONLY,缩写ROM)不能写入而只能读出数据,其中的信息是在制造时一次写入的。只度存储器常用来存放固定不变,重复使用的程序,数据或信息,如存放汉字库,各种专用设备的控制程序等。最典型的是ROMBIOS(基本输入/输出系统),其中部分内容使用于启动计算机的指令,内容固定每次开机时都要执行。存储在ROM中的指令叫微程序,这样的ROM成为固体。

                      其他形式的只读存储器:

1)PROMProgrammableROM):一种空白ROM,用户可按照自己的需要对其 编程。输入PROM的指令叫做微码,一旦微码输入,PROM的功能就和普通ROM一样,内容不能消除和改变。

2)可擦除的可编程的只读存储器E-PROMERASABLE PROGRAMMABLE        ROM),可以从计算机上取下来,用特殊的设备擦除其内容后重新编程。

3) 闪存(flashROM,它不像PROMEPROM那样只能一次编程,而是可以电擦除,重新编程。闪存ROM常用于个人电脑,蜂窝电话,数字相机,个人数字助手等,现在的闪存已经可以达到上G的容量。

    4)CMOS存储器

CMOS互补金属氧化物半导体

计算机需要保存一些配置信息,如硬盘驱动器和键?的类型;日期,时间以及其它启动计算机所需要的信息等。他们不需要频繁变化,又不能一成不变,需要时(升级或更换设备)要适当变化,CMOS存储器可以满足这种要求。计算机关机后仍能维持其中存储的信息。CMOS中的信息可以改变,比如计算机更换硬盘之后,可以通过执行CMOS配置程序与机器交互,更改CMOS的信息。

 

三,外存储器

      外存储器一般不直接与微机处理器打交道,外存中的数据应先掉入内存,再由微处理器进行处理。为了增加内存容量,方便读写操作,有时将硬盘的一部分当做内存使用,这就是虚拟内存。虚拟内存利用在硬盘上建立“交换文件”的方式,把部分应用程序(特别是已闲置的应用程序)所用到的内存空间搬到硬盘上去,以此来增加可使用的内存空间和弹性;当然,容量的增加是以牺牲速度为代价的。交换文件是暂时性的,应用程序执行完毕便自动删除。

1) 软磁盘存储器

2) 硬磁盘存储器

3) 光盘存储器

4) U

 

四,输入输出设备

 输出设备

1)  显示设备分辨率:如,800600像素显示适配器(显卡)

2)  打印设备击打式:如,点阵(针式)打印机;非击打式:如,喷墨式打印机,激光打印机

3)绘图仪:笔式绘图仪:平板式绘图仪,滚筒转筒式绘图仪;非笔式绘图仪:喷墨绘图仪,静电仪热敏绘图仪电子照相绘图仪。

     输入设备

1)  文字输入设备键盘,磁卡阅读机,条形码阅读机,纸带阅读机,卡片阅读机等

2)  图形输入设备光笔,鼠标器,数字化仪,触摸屏等

3)  图象输入设备扫描仪,数字式照相机,摄相头等。

 

posted on 2007-08-02 13:21  杜军  阅读(494)  评论(0编辑  收藏  举报