数据库系统工程师考试知识点精讲计算机组成.docx
《数据库系统工程师考试知识点精讲计算机组成.docx》由会员分享,可在线阅读,更多相关《数据库系统工程师考试知识点精讲计算机组成.docx(9页珍藏版)》请在冰豆网上搜索。
![数据库系统工程师考试知识点精讲计算机组成.docx](https://file1.bdocx.com/fileroot1/2023-5/18/02f7fb85-a3f2-4498-957e-80fd436b7183/02f7fb85-a3f2-4498-957e-80fd436b71831.gif)
数据库系统工程师考试知识点精讲计算机组成
数据库系统工程师考试知识点精讲(计算机组成)
数据库系统工程师为软考中一门中级资格考试,以下是小编整理的一些数据库系统工程师考试知识点精讲,供大家参考学习。
计算机组成
中央处理器是计算机的控制、运算中心,它主要通过总线和其他设备进行联系。
另外,在嵌入式系统设计中,外部设备也常常直接连接到中央处理器的外部I/O(Input/Output,输入/输出)脚的相关引脚上。
中央处理器的类型和品种异常丰富,各种中央处理器的性能也差别很大,有不同的内部结构及不同的指令系统。
但都是基于冯·诺依曼结构,因而其基本组成部分相似。
1、运算器
运算器的主要功能是在控制器的控制下完成各种算术运算、逻辑运算和其他操作。
一个计算过程需要用到加法器/累加器、数据寄存器、状态寄存器等。
加法是运算器的基本功能,在大多数中央处理器中,其他计算也是经过变换后使用加法进行的,一个位加法的逻辑图如图1-1所示。
其中Xi、Yi是加数和被加数,Ci+1是低位进位,Ci是进位,Zi是和。
为完成多位数据加法,可以通过增加电路和部件,使简单的加法器能够变为串行、并行加法器,超前进位加法器等。
运算器的位数,即运算器一次能对多少位的数据做加法。
这是衡量中央处理器的一个重要指标。
2、控制器
控制器是中央处理器的核心,它控制和协调整个计算机的动作,其组成如图1-2所示。
控制通常需要程序计数器(ProgramCounter,PC)、指令寄存器(InstructionRegister,IR)、指令译码器(InstructionDecoder,ID)、定时和控制电路,以及脉冲源、中断(在图1-2中未表示)等共同组成。
控制器各组件的说明如下。
指令寄存器(IR):
中央处理器,执行的操作码存放在这里。
指令译码器(ID):
将操作码解码,告诉中央处理器该做什么。
定时和控制电路(Timing/ControlCircuit):
用来产生各种微操作控制信号。
程序计数器(PC):
程序计数器中存放的是下一条指令的地址。
由于多数情况下程序是顺序执行,所以程序计算数器设计成能自动加1.当出现转移指令、中断等情况时,就需要重填程序计数器。
程序计数器可能是下一条指令的绝对地址,也可能是相对地址,即地址偏移量。
标志寄存器(FlagsRegister,FR):
这个寄存器通常记录运算器的重要状态或特征,包括是否溢出、结果为0、被0除等。
这个寄存器的每一位表示一个特征。
标志寄存器的典型应用是作为跳转指令的判断条件。
堆栈和堆栈指针(StackPointer,SP):
堆栈可以由一组寄存器或在存储器内的特定区域组成。
由于寄存器数量总是有限的,所以大多数系统采用了使用存储器的软件堆栈。
指向堆栈顶部的指针称为堆栈指针。
寄存器组:
上面提及的程序计数器、标志寄存器等为专用寄存器,都有特定的功能和用途。
通用寄存器的功能由程序指令决定,最常见的应用是放置计算的中间结果,减少对存储器的访问次数。
通常寄存器的宽度和运算器的位数是一致的。
3、存储器系统
这里的存储器是指中央处理器通过总线直接能访问的存储器,通常称为内存。
硬盘等需通过I/O接口访问的存储器常称为外存或者辅存。
存储器的作用显然是存储数据,包括指令、指令带的数据(这正是冯·诺依曼结构的特点之一)和中央处理器处理后的结果(包括中间结果)。
中央处理器对存储器的访问需通过控制地址、数据总线进行。
存储器的数据组织是线性的,所存储的数据都有整齐的"编号",即访问地址。
存储器一般每个存储单元中有8位数据,其容量是其存储单元的总和。
存储器的性能指标如下。
存取时间:
指的是从中央处理器发出指令到操作完成的时间。
传输率:
或称为数据传输带宽,指单位时间内写入或读取的数据的多少,显然,存取时间越少,则传输率越高。
存储密度:
在单位面积中的存储容量,人们在不断增加这个值。
4、时序产生器和控制方式
为了使得计算机各部件同步工作,计算机中都有一个脉冲源,通常是晶振。
这个脉冲源产生主振脉冲,主振脉冲的时间间隔为主振周期,即时钟周期。
中央处理器执行指令的时间(包括取指)为指令周期,由于指令可能有不同的复杂度,所以,每种指令的指令周期可能不同。
CPU(CentralProcessUnit)周期也称机器周期,一般是从内存中读一个指令的最短时间。
CPU周期又由若干个时钟周期组成。
指令周期与时钟周期的关系如图1-3所示。
通常把CPU执行指令的各个微操作遵循的时间顺序叫时序。
时序图是形象地表示信号线上信息变化的时间序列的图形。
组合逻辑控制和微程序控制是两种基本的控制方式。
1.组合逻辑控制
使用专门逻辑电路的控制方式,它的实现有硬件接线控制和可编程逻辑阵列两种。
硬件连线法最直接,可以用较少的元件实现最快的速度,但是如果要更改,只有重新设计。
可编程逻辑阵列采用低成本大规模集成电路的方式。
组合逻辑控制灵活性很差,在复杂指令系统计算机中难以处理不断增加的复杂指令,但是它使用的电子原件少,在精简指令计算机中发挥了很大的作用。
2.微程序控制
为提高控制的灵活性,许多中央处理器采用了微程序控制的控制方法,先看如下的几个概念。
微程序:
微程序对应一组机器指令,若干个微指令序列形成一段微程序。
而微指令又可细分为若干个微操作。
微程序存在控制内存内。
微操作:
微操作是最基本的操作,可分为相容性微操作和不相容性微操作,这两种微操作的区别在于:
是否能在一个CPU周期内并行执行。
3.微指令格式
微指令格式如图1-4所示。
在如图1-4所示的前半部分,存放着对各种控制门进行激活或关闭的控制信息;后半部分是后续微指令的地址。
微指令格式实现了数据结构中的单向列表。
操作控制字段的格式有如下两种。
水平型微指令:
操作控制字段的每一位控制不同的控制门,可以在一个微指令中定义。
执行多个并行的微操作的优点是效率高、灵活,执行时间短。
垂直型微指令:
与水平型微指令相比,其格式要短,一条微指令中包括的微操作少,只有1~2个。
由于其指令字短,所以比较容易掌握。
在实践中也常常使用混合型微指令,即水平型微指令和垂直型微指令的混合。
5、指令流、数据流和计算机的分类
首先介绍指令流和数据流的定义。
指令流:
机器执行的指令序列。
数据流:
由指令流调用的数据序列,包括输入数据和中间结果。
1.计算机根据多倍性的分类
按照计算机在一个执行阶断能执行的指令或能处理数据的最大可能个数,人们把计算机分成4种,如表1-1所示。
SISD(SingleInstructionSingleData,单指令流单数据流):
这是最简单的方式,计算机每次处理一条指令,并只对一个操作部件分配数据。
SIMD(SingleInstructionMultipleData,单指令流多数据流):
具备SIMD点的常常是并行处理机,这种处理机具备多个处理单元,每次都执行同样的指令,对不同的数据单元进行处理。
这种计算机非常适合于处理矩阵计算等。
MISD(MultipleInstructionSingleData,多指令流单数据流):
这种处理方式比较难以想象,有多个处理单元,同时执行不同的指令,但针对的是单一数据。
有资料认为流水线处理机,是每个数据由不同操作部件对其进行处理。
MIMD(MultipleInstructionMultipleData,多指令流多数据流):
这是一种全面的并行处理,典型的是多处理机。
这种计算机的设计和控制都很复杂。
2.计算机按照程序流程机制的分类
1)控制流计算机
这是通常见到的计算机,使用程序计数器(PC)来确定下一条指令的地址。
指令程序流由程序员直接控制,其主存是共享的,存储区可以为多指令修改(后面将会提到),这容易产生数据相关性,对并行性不利。
2)数据流计算机
在冯·诺依曼体系中,计算机是指令流驱动的,而数据流则是处于被动地位,这看起来合理,但在某些时候也不尽然。
相对比的是数据流驱动,即一旦数据准备好,则立即开始执行相关的指令,这种非冯·诺依曼体系仍然在探索中。
目前,对冯·诺依曼体系的改良已有相当的成果,即流水线技术和并行计算机。
在数据流计算机中,数据不在共享的存储器中,而是在指令间传送,成为令牌。
当需要使用该数据的指令收到令牌,开始执行之后,该令牌即消失,执行的指令将执行的结果数据当做新的令牌发送。
这种方式不再需要程序计数器及共享的存储器,但需要检测数据可用性的专门部件,以建立、识别、处理数据令牌标记所需要的时间和空间。
在其他一些方面,数据流计算机还有一些困难需要克服。
例如,在数据流计算机中,由于没有程序计数器,使得程序的调试和诊断变得困难。
因为没有共享的存储器,也就无法控制其分配,无法支持数组、递归等操作。
3)归约机(ReductionsMachine)
亦称需求驱动,是对一个操作结果的需求而启动的。
归约机采用一种"惰性计算"的方式,操作只有在另一条指令需要这个操作的结果时才执行。
例如,当计算5+(6×2-10)时,归约机并非先去计算6×2,而是先计算整个算式,碰到(6×2-10)再启动一个过程去计算它,最后碰到需要计算6×2,计算后一层层退回,得到整个算术的值。
由于需求驱动可减少那些不必要的求值操作,因而可以提高系统效率。
归约机是一种面向函数式语言,或以函数式语言为机器语言的机器。
函数式语言程序没有诸如指令计数器、数据存储器和程序当前状态之类的概念。
这种语言的程序是纯数学意义上的函数,它作用于程序的输入,得到的结果值就是程序的输出。
因此它不具有副作用,保证了程序各部分的并发执行。
6、处理器性能
计算机系统是一个极其复杂的系统,不同的指令系统、不同的体系实现方式、不同数量的硬件及不同部件的组合,都对计算机的性能造成这样或那样的影响。
而且不同的应用对处理器的性能方面有不同的要求。
这就要求对处理器性能评价需要综合考虑,全面地衡量处理器的性能。
1.影响处理器性能的因素
1)基本字长
运算器进行计算的位数称为基本字长。
字长越长,处理器计算的精度就越高,复杂度也越高。
这是因为基本字长增加不但要增加运算器的复杂度,而且需要同时增加寄存器和总线的宽度。
2)数据通路宽度
数据通路宽度指的是数据总线一次所能并行传送的位数。
它体现了信息的传送能力,从而影响计算机的有效处理速度。
在处理器内部,数据通路的宽度一般是基本字长,而外部总线的数据通路宽度则不一定。
如果外部数据通路宽度小于基本字长,那么运算器需要的数据,必需多次通过总线从主存传递到处理器内部。
3)指令系统
不同的指令系统对处理器的性能也有非常大的影响。
在前面已经讨论过精简指令系统和复杂指令系统之间的不同。
另外,有的处理器对一些专门的应用增加了专门的指令,使得这些处理器在处理专门任务时能够"得心应手".
4)时钟频率
通常来说,提高处理器的时钟频率能够提高系统的性能,因为在同样的时间内,提高时钟频率,使得时钟周期减少,从而指令的执行时间减少。
5)流水线技术
处理器使用流水线技术能够使不同指令的不同执行部分,使用不同的处理单元同时执行。
例如,将一个指令的取指、移码、取操作数、执行、写结果分别由不同的处理单元处理,能有效地提高处理器的性能。
另外,处理器把这些不同的处理单元在硬件上重复,形成多条流水线,以期更加提高性能。
无疑,流水线增加了处理器的复杂度,不但处理单元要分开,而且需要增加流水线管理部分的电路。
6)内部数据/指令缓存
使用存储器内部的数据或指令缓存,能够减少处理器访问较慢的内存的次数,从而提高处理器的性能。
缓存当然越大越好。
在缓存命令失败时,就需要从主存提取数据,这个判断需要增加控制电路。
如果缓存太小或管理不当,有可能对性能造成负面影响。
2.处理器性能的评价
评价处理器性能可以是直接给出处理器每条指令的执行时间,或者是指令系统中的指令执行时间的某种加权评价,以及计算处理器每秒能执行多少个加法指令。
1个MIPS(MillionInstructionsPerSecond,每秒百万条指令)指的是处理器每秒能完成1×106条指令。
这样的简单评价方法随着计算机应用的不断发展显得过于简单,局限性也日益暴露,由此很快便出现了改进的方法,主要有以下3种。
1)等效指令速度法
这种方法把指令分成若干种不同的类型,分别统计各种类型的指令在整个程序中的比例和执行时间,以此来计算等效指令速度。
采用固定比率的方法来计算处理器的执行时间,不能灵活地适应不同的程序应用存在的指令频率不同,不能反映出不同处理器之间数据长度和指令功能强弱对处理器性能的影响,同时也不能反映处理器内部数据缓存、流水线等对性能的影响。
2)数据处理速度法
这种方法试图给出处理器的"数据处理速度".这只考虑了不同指令及不同操作数的平均长度对处理器性能的影响。
这种方法主要对处理器和主存储器的速度进行度量,没有涉及Cache、多功能部件等技术对性能的影响。
3)核心程序法
这种方法在归纳总结应用程序中,把使用得最为频繁的那部分程序作为核心程序。
即将这些程序放在不同的处理器上运行,运行时间作为不同处理器的性能评价依据。
使用精挑细选的核心程序,能够比较全面地评价处理器对某种应用程序的性能。
与实际的应用程序相比,核心程序由于比较小,所以缓存利用率就高。
如需了解更多数据库系统工程师资讯,请看希赛软考学院!