数据库系统工程师考试考点分析与真题详解第4版Word文件下载.docx

上传人:b****5 文档编号:19680739 上传时间:2023-01-08 格式:DOCX 页数:37 大小:454.09KB
下载 相关 举报
数据库系统工程师考试考点分析与真题详解第4版Word文件下载.docx_第1页
第1页 / 共37页
数据库系统工程师考试考点分析与真题详解第4版Word文件下载.docx_第2页
第2页 / 共37页
数据库系统工程师考试考点分析与真题详解第4版Word文件下载.docx_第3页
第3页 / 共37页
数据库系统工程师考试考点分析与真题详解第4版Word文件下载.docx_第4页
第4页 / 共37页
数据库系统工程师考试考点分析与真题详解第4版Word文件下载.docx_第5页
第5页 / 共37页
点击查看更多>>
下载资源
资源描述

数据库系统工程师考试考点分析与真题详解第4版Word文件下载.docx

《数据库系统工程师考试考点分析与真题详解第4版Word文件下载.docx》由会员分享,可在线阅读,更多相关《数据库系统工程师考试考点分析与真题详解第4版Word文件下载.docx(37页珍藏版)》请在冰豆网上搜索。

数据库系统工程师考试考点分析与真题详解第4版Word文件下载.docx

  指令寄存器(IR):

中央处理器,执行的操作码存放在这里。

  指令译码器(ID):

将操作码解码,告诉中央处理器该做什么。

  定时和控制电路(Timing/ControlCircuit):

用来产生各种微操作控制信号。

  程序计数器(PC):

程序计数器中存放的是下一条指令的位置。

由于多数情况下程序是顺序执行,所以程序计算数器设计成能自动加1.当出现转移指令、中断等情况时,就需要重填程序计数器。

程序计数器可能是下一条指令的绝对位置,也可能是相对位置,即位置偏移量。

  标志寄存器(FlagsRegister,FR):

这个寄存器通常记录运算器的重要状态或特征,包括是否溢出、结果为0、被0除等。

这个寄存器的每一位表示一个特征。

标志寄存器的典型应用是作为跳转指令的判断条件。

  堆栈和堆栈指针(StackPointer,SP):

堆栈可以由一组寄存器或在存储器内的特定区域组成。

由于寄存器数量总是有限的,所以大多数系统采用了使用存储器的软件堆栈。

指向堆栈顶部的指针称为堆栈指针。

  寄存器组:

上面提及的程序计数器、标志寄存器等为专用寄存器,都有特定的功能和用途。

  通用寄存器的功能由程序指令决定,最常见的应用是放置计算的中间结果,减少对存储器的访问次数。

通常寄存器的宽度和运算器的位数是一致的。

1.1.3 

存储器系统

这里的存储器是指中央处理器通过总线直接能访问的存储器,通常称为内存。

硬盘等需通过I/O接口访问的存储器常称为外存或者辅存。

  存储器的作用显然是存储数据,包括指令、指令带的数据(这正是冯·

诺依曼结构的特点之一)和中央处理器处理后的结果(包括中间结果)。

  中央处理器对存储器的访问需通过控制位置、数据总线进行。

存储器的数据组织是线性的,所存储的数据都有整齐的"

编号"

即访问位置。

存储器一般每个存储单元中有8位数据,其容量是其存储单元的总和。

  存储器的性能指标如下。

  存取时间:

指的是从中央处理器发出指令到操作完成的时间。

  传输率:

或称为数据传输带宽,指单位时间内写入或读取的数据的多少,显然,存取时间越少,则传输率越高。

  存储密度:

在单位面积中的存储容量,人们在不断增加这个值。

  有关存储器系统的详细内容,请阅读本书第2章。

1.1.4 

时序产生器和控制方式

  为了使得计算机各部件同步工作,计算机中都有一个脉冲源,通常是晶振。

这个脉冲源产生主振脉冲,主振脉冲的时间间隔为主振周期,即时钟周期。

中央处理器执行指令的时间(包括取指)为指令周期,由于指令可能有不同的复杂度,所以,每种指令的指令周期可能不同。

CPU(CentralProcessUnit)周期也称机器周期,一般是从内存中读一个指令的最短时间。

CPU周期又由若干个时钟周期组成。

指令周期与时钟周期的关系如图1-3所示。

图1-3 

指令周期与时钟周期

  通常把CPU执行指令的各个微操作遵循的时间顺序叫时序。

时序图是形象地表示信号线上信息变化的时间序列的图形。

  组合逻辑控制和微程序控制是两种基本的控制方式。

  1.组合逻辑控制

  使用专门逻辑电路的控制方式,它的实现有硬件接线控制和可编程逻辑阵列两种。

硬件连线法最直接,可以用较少的元件实现最快的速度,但是如果要更改,只有重新设计。

可编程逻辑阵列采用低成本大规模集成电路的方式。

组合逻辑控制灵活性很差,在复杂指令系统计算机中难以处理不断增加的复杂指令,但是它使用的电子原件少,在精简指令计算机中发挥了很大的作用。

  2.微程序控制

  为提高控制的灵活性,许多中央处理器采用了微程序控制的控制方法,先看如下的几个概念。

  微程序:

微程序对应一组机器指令,若干个微指令序列形成一段微程序。

而微指令又可细分为若干个微操作。

微程序存在控制内存内。

  微操作:

微操作是最基本的操作,可分为相容性微操作和不相容性微操作,这两种微操作的区别在于:

是否能在一个CPU周期内并行执行。

  3.微指令格式

  微指令格式如图1-4所示。

图1-4 

微指令的格式

  在如图1-4所示的前半部分,存放着对各种控制门进行激活或关闭的控制信息;

后半部分是后续微指令的位置。

微指令格式实现了数据结构中的单向列表。

  操作控制字段的格式有如下两种。

  水平型微指令:

操作控制字段的每一位控制不同的控制门,可以在一个微指令中定义。

执行多个并行的微操作的优点是效率高、灵活,执行时间短。

  垂直型微指令:

与水平型微指令相比,其格式要短,一条微指令中包括的微操作少,只有1~2个。

由于其指令字短,所以比较容易掌握。

  在实践中也常常使用混合型微指令,即水平型微指令和垂直型微指令的混合。

1.1.5 

指令流、数据流和计算机的分类

  首先介绍指令流和数据流的定义。

  指令流:

机器执行的指令序列。

  数据流:

由指令流调用的数据序列,包括输入数据和中间结果。

  1.计算机根据多倍性的分类

  按照计算机在一个执行阶断能执行的指令或能处理数据的最大可能个数,人们把计算机分成4种,如表1-1所示。

表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,计算后一层层退回,得到整个算术的值。

由于需求驱动可减少那些不必要的求值操作,因而可以提高系统效率。

  归约机是一种面向函数式语言,或以函数式语言为机器语言的机器。

函数式语言程序没有诸如指令计数器、数据存储器和程序当前状态之类的概念。

这种语言的程序是纯数学意义上的函数,它作用于程序的输入,得到的结果值就是程序的输出。

因此它不具有副作用,保证了程序各部分的并发执行。

1.1.6 

处理器性能

  计算机系统是一个极其复杂的系统,不同的指令系统、不同的体系实现方式、不同数量的硬件及不同部件的组合,都对计算机的性能造成这样或那样的影响。

而且不同的应用对处理器的性能方面有不同的要求。

这就要求对处理器性能评价需要综合考虑,全面地衡量处理器的性能。

  1.影响处理器性能的因素

  1)基本字长

  运算器进行计算的位数称为基本字长。

字长越长,处理器计算的精度就越高,复杂度也越高。

这是因为基本字长增加不但要增加运算器的复杂度,而且需要同时增加寄存器和总线的宽度。

  2)数据通路宽度

  数据通路宽度指的是数据总线一次所能并行传送的位数。

它体现了信息的传送能力,从而影响计算机的有效处理速度。

在处理器内部,数据通路的宽度一般是基本字长,而外部总线的数据通路宽度则不一定。

如果外部数据通路宽度小于基本字长,那么运算器需要的数据,必需多次通过总线从主存传递到处理器内部。

  3)指令系统

  不同的指令系统对处理器的性能也有非常大的影响。

在前面已经讨论过精简指令系统和复杂指令系统之间的不同。

另外,有的处理器对一些专门的应用增加了专门的指令,使得这些处理器在处理专门任务时能够"

得心应手"

.

  4)时钟频率

  通常来说,提高处理器的时钟频率能够提高系统的性能,因为在同样的时间内,提高时钟频率,使得时钟周期减少,从而指令的执行时间减少。

  5)流水线技术

  处理器使用流水线技术能够使不同指令的不同执行部分,使用不同的处理单元同时执行。

例如,将一个指令的取指、移码、取操作数、执行、写结果分别由不同的处理单元处理,能有效地提高处理器的性能。

另外,处理器把这些不同的处理单元在硬件上重复,形成多条流水线,以期更加提高性能。

无疑,流水线增加了处理器的复杂度,不但处理单元要分开,而且需要增加流水线管理部分的电路。

  6)内部数据/指令缓存

  使用存储器内部的数据或指令缓存,能够减少处理器访问较慢的内存的次数,从而提高处理器的性能。

缓存当然越大越好。

在缓存命令失败时,就需要从主存提取数据,这个判断需要增加控制电路。

如果缓存太小或管理不当,有可能对性能造成负面影响。

  2.处理器性能的评价

  评价处理器性能可以是直接给出处理器每条指令的执行时间,或者是指令系统中的指令执行时间的某种加权评价,以及计算处理器每秒能执行多少个加法指令。

1个MIPS(MillionInstructionsPerSecond,每秒百万条指令)指的是处理器每秒能完成1×

106条指令。

  这样的简单评价方法随着计算机应用的不断发展显得过于简单,局限性也日益暴露,由此很快便出现了改进的方法,主要有以下3种。

  1)等效指令速度法

  这种方法把指令分成若干种不同的类型,分别统计各种类型的指令在整个程序中的比例和执行时间,以此来计算等效指令速度。

  采用固定比率的方法来计算处理器的执行时间,不能灵活地适应不同的程序应用存在的指令频率不同,不能反映出不同处理器之间数据长度和指令功能强弱对处理器性能的影响,同时也不能反映处理器内部数据缓存、流水线等对性能的影响。

  2)数据处理速度法

  这种方法试图给出处理器的"

数据处理速度"

.这只考虑了不同指令及不同操作数的平均长度对处理器性能的影响。

这种方法主要对处理器和主存储器的速度进行度量,没有涉及Cache、多功能部件等技术对性能的影响。

  3)核心程序法

  这种方法在归纳总结应用程序中,把使用得最为频繁的那部分程序作为核心程序。

即将这些程序放在不同的处理器上运行,运行时间作为不同处理器的性能评价依据。

使用精挑细选的核心程序,能够比较全面地评价处理器对某种应用程序的性能。

与实际的应用程序相比,核心程序由于比较小,所以缓存利用率就高。

  有关性能评价方面的详细内容,请阅读本书第3章。

1.2 

指令系统

指令系统是中央处理器所有指令的集合,也是高级语言编制的基础。

指令系统的选择和确定涉及很多方面,是一个复杂的问题。

  通常一个指令可分解为操作码和位置码两个部分。

操作码确定指令的类型,位置码确定指令所要处理的数据。

根据位置码的个数可以有4址指令、3址指令,甚至有0址指令。

  根据指令的长度特点,一个指令系统可能是定长指令字结构,即指令系统中所有的指令的长度都相同,特点是控制简单。

如果指令的长度不固定,复杂的指令长度较长,就是变长指令字结构,这种结构的指令很容易扩展,但是增加了解码系统的复杂度。

1.2.1 

寻址方式

  根据位置码代表的位置类型,指令系统可以有以下5种。

  1.立即寻址

  位置码就是操作数,这种寻址方式不必再次访问内存去取操作数。

当然,也无法修改操作数。

  2.直接寻址

  位置码就是主存内数据的绝对位置,不必做任何换算。

不足之处在于寻址范围有限,位置码的位数限制了寻址空间,而计算机的发展趋势是计算机拥有越来越大的内存。

而使用变长指令结构可以突破限制,但是该指令会变得臃肿。

  3.寄存器寻址

  位置码的位置是寄存器的位置。

与内存寻址比较而言,访问寄存器的速度是非常快的,所以使用寄存器寻址有非常快的速度。

不足之处在于寄存器的数量和数据宽度有限。

  4.间接寻址

  位置码指向主存中的数据,这个数据仍然是一个位置,这种方式提高了寻址的灵活性,扩大了寻址的范围。

但由于要多次读主存,速度大为降低。

  5.寄存器间接寻址

  位置码保存的是寄存器位置,相对应的寄存器中保存的是数据的位置,这样既快又有灵活性,是一种广泛使用的寻址方式。

  6.变址寻址

  变址寻址,是将位置码和变址寄存器内容相加后形成数据的位置。

由于变址寄存器能自动修改,因而这种方式对数组运算、字符串操作等批量数据的处理非常有效。

  7.基址寻址

  与变址寻址类似,是将变址寄存器改成基址寄存器,不同之处在于,基址寄存器的内容是基本不变的,改变的是指令中位置码的部分内容,主要作用是扩大寻址空间和再定位。

  8.页面寻址

  页面寻址是将主存分组成若干个区,寻址时使用区码加区内偏移的方式确定位置。

  9.相对寻址

  相对寻址也与变址寻址类似,这时变址寄存器换成了程序计数器。

1.2.2 

指令类型

  从功能来言,常用的指令有如下几种。

  1.数据传送指令

  这些指令负责数据在寄存器和主存之间的传递,其中数据交换指令是数据的双向移动,而堆栈操作指令是专门对堆栈的PUSH和POP操作。

  2.运算类指令

  包括算术运算、逻辑运算、移位运算方面的指令。

这类指令一般会改变标志寄存器的状态。

  移位运算是一种特殊的运算,又分算术移位、逻辑移位和循环移位3类。

在算术移位中左移则在空位补0,右移则补符号位;

逻辑移位无论左移右移都补0;

循环移位是把移动空位由移出的位来填补的移位,又分带符号位移动的大循环和不带符号位移动的小循环。

  其中算术左移等于是对操作数做乘以2的操作,而算术右移等于对操作数做除以2的操作。

  3.程序控制指令

  控制程序流程改变的指令也非常多,包括了条件转移指令、无条件转移指令、循环控制指令、程序调用和返回指令、中断指令等。

  4.输入/输出类指令

  这类指令只有输入/输出独立编码才需要,对于统一编码的部分而言是不需要的。

  5.数据处理类指令

  数据处理指令包括一些比较复杂的指令,如数据转换指令、字符串操作指令、压缩和扩展指令等。

1.2.3 

CISC和RISC

  随着硬件成本的下降,人们倾向于向中央处理器加入越来越多、越来越复杂的指令;

同时,为了兼容老产品,原来的指令也要保留。

这样,整个指令系统就向着越来越大、越来越复杂的趋势发展。

在计算机处理能力越来越强的同时,中央处理器的设计也越来越复杂,这无疑大大增加了设计周期,更增加了设计失误的可能性。

  事物的另外一个方面在于,指令的复杂性和中央处理器功能的增加,似乎不一定是成正比的。

人们发现在许多方面存在一个称为20%~80%的定律,即系统中20%的部分发挥了80%的作用。

通过对CISC指令系统的研究,发现系统在80%的时间里执行的是20%的指令。

  在这种情况下,便出现了精简指令设计思想。

这种计算机的指令结构不追求全面和复杂,而是只实现那些经常被执行的指令--由于指令比复杂指令结构的计算机少得多,所以称为精简指令计算机。

  先看著名的公式P=I×

CPI×

T.

  式中:

  P:

计算机执行程序所需要的时间。

  I:

机器指令数。

  CPI:

平均每条指令所需要的机器周期数。

  T:

每个机器周期的时间。

  CISC(ComplexInstructionSetComputer,复杂指令集计算机)在指令数上占优,而RISC(ReducedInstructionSetComputer,精简指令集计算机)在CPI上则快得多。

这是两种结构的两个方向。

从这个公式可以发现,在理论上两者都有优势,即不能认为精简指令计算机就好,复杂指令计算机就不好。

事实上这两种设计方法很难找到截然不同的界限,而且在实际的芯片中,这两种设计方法也有相互渗透的地方。

  CISC和RISC的对比如表1-2所示。

表1-2 

CISC和RISC的简单对比

1.2.4 

RISC结构特点

  1.精简指令系统采用硬件布线逻辑控制

  不是说硬件方式不够灵活吗?

确实,对于复杂指令系统而言,这是它的致命缺点。

但对于指令少、格式简单的精简指令系统而言,采用微程序控制就显得多余了,而硬件方式占用元件少的优点就体现出来了--腾出的地方可以在中央处理器中放置更多的通用寄存器,同时,硬件方式的译码速度也要快得多。

  2.大量通用寄存器

  RISC大量减少了对内存的访问指令。

许多精简指令计算机只有两条指令与内存交换数据:

LOAD和STORE.计算的中间结果放在寄存器中,由于访问寄存器的速度远远高于访问主存的速度,因而这种减少存储器访问次数的做法提高了精简指令计算机的效率。

  同时,大量的通用寄存器使得可以使用寄存器完成程序调用的参数传递,这样在程序调用时,减少了对主存的访问,而在结构化的程序中,大量使用了程序调用,这也无疑也提高了精简指令计算机的效率。

  精简指令计算机采用"

重叠寄存器窗口技术"

进行寄存器的组织,如图1-5所示。

  图1-5中有3个过程(过程X、Y和Z),X的输出是Y的输入,通过这种方式传递参数,不需要保护现场,从而减少了堆栈的操作。

当然,这样的调用,其层数是有限制的,层数过多甚至是递归函数时,就一定要借助于主存的堆栈。

图1-5 

寄存器的组织

  3.RISC普遍采用流水线技术

  由于RISC指令结构简单,除了访问主存的指令速度慢之外,其他指令执行时间大多相同,这有利于发挥流水线的优势。

同时,大量的寄存器使得编译优化成为可能,可以尽量减少数据相关的问题,减少流水线闲置时间。

  4.RISC的存储系统

  为了加快主存存取速度,大多数精简指令计算机采用了缓存技术,有的更是把指令和数据缓存分开设置,这样取指和读数可以同时进行。

当指令或数据在缓存中时,就不需要去主存中提取,如果频繁地修改某个位置的数据,数据缓存也能减少写主存的次数。

显然缓存越大,越能减少主存存取次数。

  如果缓存命令失败,就必须访问主存,这就增加了控制电路的复杂性。

  5.对编译器的影响

  精简指令系统对编译系统的影响有两个方面。

一方面由于指令简单、选择有限、寻址方式也少,这样编译系统不需要在众多的指令中选择最佳指令和指令组合,这就降低了对编译系统的要求。

另一方面由于存在大量的通用寄存器,如何充分利用这些寄存器优化编译,使编译后的指令代码更能适应流水线的要求,这都对精简指令计算机的编译器提出了更高的要求。

如果没有编译器的支持,精简指令计算机的多寄存器、流水线技术、移动寄存器窗口等都难以发挥最佳的作用。

1.3 

并行处理和并行处理机

单个处理器的处理能力总是有限的,但是可以把许多处理器通过特定的方式联合起来,以得到很高的处理能力,解决单个处理器无法完成的任务。

战胜国际象棋冠军的"

深蓝"

计算机是一种32节点的IBM(SP)计算机。

每个节点的SP使用的是装有8个专用的VLSI国际象棋处理器的单一微通道卡,总共有256个处理器并行运行。

"

的程序代码是用C语言编写的并在AIX操作系统下运行。

这种网络是可扩充的并行系统,它能在标准国际象棋比赛中为选手每步所分配的3分钟内计算出500~1000亿步。

1.3.1 

并行性概念

并行,即是两个工作在执行过程中的事件,在时间上存在着重叠。

  有关并行严格的定义有如下几种。

  同时性:

多个事件同时发生。

  并发性:

多个事件在同一个时间间隔内发生。

绝对同时是不存在的,只是事件的间隙太小,以至于不能被机器识别。

  控制并行:

控制并行使多个操作同时进行,如流水线,它的并行性受到流水线长度、功能单元等限制,对程序员而言,这种并行是透明的。

  数据并行:

数据并行是多个相同的处理单元对多个不同的数据同时进行相同的处理,这种方式开发潜力最大,与控制并行相比,代码容易编写和调试。

  粒度:

粒度是指进程中所含计算量的尺寸大小,通常使用其中的指令数作为计量方式。

  时延:

时延是各子系统之间通信开销的时间量度。

  并行度:

并行度是指在并行计算机中,单位时间内执行程序的处理单元的数量

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育 > 理化生

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1